FinalEdit : 첫 번째 게시물에서 관련 디렉토리가 작동하지 않지만, Exec
라인에서 $(MsBuildThisFileDirectory)
을 삭제하면 제대로 작동합니다.MSBuild를 사용하여 AssemblyVersion을 파일에 작성하는 방법은 무엇입니까?
편집 2 : 새 대상을 DefaultTargets
에 추가했습니다. 이제 기본적으로 실행됩니다. 그러나 postbuild 명령으로 타이밍이 해제되었습니다. 대상에 <Exec Command="call $(MsBuildThisFileDirectory)documentation\tools\GenerateDocumentation.bat" IgnoreExitCode="false" />
을 추가했지만 실제로는 C:\Users\my program\documentation\tools\GenerateDocumentation.bat
인 공백으로 인해 C:\Users\my
이 유효한 배치 파일이 아니라는 오류가 발생합니다. 경로 주위에 따옴표를 쓰면 MSB4025
이라는 오류 메시지가 나타나며 이름은 $
으로 시작할 수 없습니다.
편집 : 나는 stijn의 코드를 시도했으며 명시 적으로/t : RetrieveIdentities를 사용하여 명령 줄에서 실행할 때 작동하지만 다른 이유로는 실행되지 않는 것으로 보입니다.
나는 소스 코드에 대한 문서를 생성하기 위해 Doxygen을 사용하고 있지만 자동으로 처리 할 수 있기를 바란다. .bat
스크립트를 작성하여 Doxygen을 원하는 설정 파일로 실행하고 .chm
도움말 파일로 출력을 컴파일했지만 Doxygen에서 개정 번호를 자동으로 변경할 수 없었습니다.
MSBuild를 사용하여 새 개정 번호가있는 구성 파일에 새로운 행을 추가하여 구성 파일을 간단히 갱신하려고 시도했지만 인쇄 할 항목을 얻지 못했거나없는 경우 새 파일을 작성했습니다. .
내가 지금까지 가지고있는 코드는 다른 비슷한 질문에서 얻은 것이지만 작동시키지 못합니다.
<ItemGroup>
<MyTextFile Include="\documentation\DoxygenConfigFile.doxyconfig"/>
<MyItems Include="PROJECT_NUMBER = %(MyAssemblyIdentitiesAssemblyInfo.Version)"/>
</ItemGroup>
<Target Name="RetrieveIdentities">
<GetAssemblyIdentity AssemblyFiles="bin\foo.exe">
<Output TaskParameter="Assemblies" ItemName="MyAssemblyIdentities"/>
</GetAssemblyIdentity>
<WriteLinesToFile File="@(MyTextFile)" Lines="@(MyItems)" Overwrite="false" Encoding="UTF8" />
</Target>
미래에는 "작동하지 않는다"는 메시지가 msbuild 출력/오류 등을 포함하도록 분명하지 않습니다. 또한 게시자가 게시 한 스크립트 코드를 복사/붙여 넣기하고 실행하고 잘못된 내용을 볼 수 있어야합니다. – stijn