FinalEdit:儘管相關目錄在第一篇文章中不起作用,但如果我只是從Exec
行中刪除了$(MsBuildThisFileDirectory)
,它就可以工作。如何使用MSBuild將AssemblyVersion寫入文件?
編輯2:我將新目標添加到DefaultTargets
。現在它默認運行它們。但是,時間安排現在與postbuild命令關閉。我添加了<Exec Command="call $(MsBuildThisFileDirectory)documentation\tools\GenerateDocumentation.bat" IgnoreExitCode="false" />
到目標,但它給出了一個錯誤,C:\Users\my
不是有效的批處理文件,因爲實際上是C:\Users\my program\documentation\tools\GenerateDocumentation.bat
的空間。將報價放在路徑附近會導致錯誤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