2017-09-18 7 views
0

비주얼 스튜디오 C# 프로젝트 템플릿 : $의 safeprojectname 내가 프로젝트 템플릿을 만들려고 해요 그리고 난 safeprojectname 일부 파일 이름을 대체 할

$ 매개 변수입니다.

소스 파일은 작동하지만 프로젝트 파일 (.csproj) itsef는 작동하지 않습니다.

<TemplateContent>  
    <Project TargetFileName="$safeprojectname$.csproj" File="$safeprojectname$.csproj" ReplaceParameters="true">  
     <Folder Name="Definition File" TargetFolderName="Definition File"> 
     <ProjectItem ReplaceParameters="true" TargetFileName="$safeprojectname$.txt">$safeprojectname$.txt</ProjectItem> 
     </Folder> 
    <TemplateContent> 

는 프로젝트 파일 이름 지정에 $ safeprojectname의 $를 사용할 수 있습니까?

MSDN says:

safeprojectname : 제거 모든 안전하지 않은 문자와 공백, 새 프로젝트 대화 상자에서 사용자가 제공 한 이름입니다.

$ safeprojectname $을 (를) 자체 이름으로 사용할 수 없다면은 (는) 을 알아야합니다.

+0

이 질문과 관련된 것이 있습니까? https://stackoverflow.com/questions/26832203/visual-studio-item-template-replace-with-project-name –

+0

예, 저 주제를 보았습니다. 내 문제는 약간 다릅니다. $ safeprojectname $는 소스 파일 이름에 대해서는 작동하지만 projectname 자체에서는 작동하지 않습니다. 나는 그것을 처리 할 필요가있다. – tutalia

답변

1

내가 알 필요 Path.GetInvalidFileNameChars() 반환과 같은

동일 제거 할 안전하지 않은 문자가 무엇인지. 따라서 실제로는 :\/*?"<>|의 모든 문자가 사용됩니다. 이러한 문자가 명령 행에서 사용될 때와 전체 경로 이름을 작성할 때 특별한 기능을 수행하는 방법에 유의하십시오. 그것들을 프로젝트 파일 이름에 나타내면 많은 문제가 발생할 것입니다.

+0

내가 safeprojectname 문자열을 변환하는 내 자신의 C# 메서드를 작성하는 것이 필요합니다. Path.GetInvalidFileNameChars()가 많은 도움이되었습니다. 고맙습니다. – tutalia