[英]Write Properties (name=value) to a file from an MSBuild project
對於MSBuild項目,我想輸出某種.config
文件,該文件將沿生成的二進制文件重新分配,因此構建時使用的參數可以由二進制的用戶以編程方式檢查。
輸出文件格式:
PropertyName1=ValueA
PropertyName2=ValueB
...
理想情況下,要寫入的屬性列表只包含其名稱。 也許喜歡:
<ItemGroup>
<MyExposedDictionary Include="Configuration" />
<MyExposedDictionary Include="Platform" />
<MyExposedDictionary Include="PropertyName1" />
...
</ItemGroup>
使用MyExposedDictionary
作為賦予某些DotConfigFileWriter
任務的參數,以及目標文件的路徑。
我發現了幾種將值寫入文件的方法,包括一個帶有一些C#代碼的子目標,但我是MSBuild的新手,我不知道如何將這些需求合並到一個Target
來實現它可重復使用。
我不確定你的問題在哪里。 我有一個類似的要求,即剛編譯的程序創建一個文件。 我編輯了項目的屬性:在build events
輸入一個Post-build action
REM create special file
"$(ProjectDir)$(OutDir)MyProgram.exe" /WriteFile MyFile.xml
當然,您還必須更改程序,以便在使用該參數調用時執行正確的操作(並在完成該操作后停止 - 不顯示GUI或作為Windows服務啟動)。
如果有人來這里有相同的要求,這就是我最終的結果。 對結果並不滿意,因為我希望有一些更通用的東西,但至少它能完成這項工作,並在我的項目中融合得很好:
<Target Name="WriteBuildProperties" BeforeTargets="PreBuildEvent">
<WriteLinesToFile File="$(DotConfigFile)" Overwrite="true" Lines="" />
<WriteLinesToFile File="$(DotConfigFile)" Lines="ProjectName=$(ProjectName)" />
<WriteLinesToFile File="$(DotConfigFile)" Lines="Configuration=$(Configuration)" />
...
</Target>
如果有人碰巧有一個更優雅的解決方案,請跳進去!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.