我有有一老stylee格式的配置文件(無XML)我可以使用msbuild更新非xml配置文件嗎?
dbpath=C:\Program Files\Mongodb\Data\Db
journal=true
smallfiles=true
根據我發佈過的系統,我想更新和=後更改值上
這是可能的與MSbuild?你能告訴我如何?
我知道如何使用xml poke for xml配置文件來做到這一點。
我有有一老stylee格式的配置文件(無XML)我可以使用msbuild更新非xml配置文件嗎?
dbpath=C:\Program Files\Mongodb\Data\Db
journal=true
smallfiles=true
根據我發佈過的系統,我想更新和=後更改值上
這是可能的與MSbuild?你能告訴我如何?
我知道如何使用xml poke for xml配置文件來做到這一點。
您可以設置一個模板系統並使用msbuild擴展包中的解除錯誤。在這裏看到的文檔:http://www.msbuildextensionpack.com/help/4.0.6.0/Index.html
這將意味着你就不必編寫自定義的目標像上面所有的時間
所以你幾乎有:
<ItemGroup>
<Transforms Include="$(ReleasePath)\Yourtemplates\**"/>
</ItemGroup>
<MSBuild.ExtensionPack.FileSystem.Detokenise
TaskAction="Detokenise"
TargetFiles="%(Transforms.FullPath)"/>
我認爲這可能是正確的做事方式,雖然我把它留在我的黑客的方式,直到我需要重新審視問題 – Loofer 2013-03-26 14:08:20
沒有什麼比問一個問題來幫助你回答它!
我要做到這一點
<Target Name="UpdateConfig">
<CreateProperty Value="..\config.cfg">
<Output TaskParameter="Value" PropertyName="path" />
</CreateProperty>
<Message Text="LogFilePath=$(LogFilePath)"/>
<FileUpdate Files="$(path)"
Regex="logpath=.*"
ReplacementText="logpath=$(LogFilePath)" />
</Target>
這不是我所說的優雅,但我沒有找到很多關於MSBuild的是!
有更好的建議嗎?
你可以對它進行模板化,並使用msbuild擴展包中的去話權限。這意味着你不必像往常一樣編寫自定義目標。 – 2013-03-26 12:48:02
看起來像一個很好的解決方案...做出答案,我會upvote你! – Loofer 2013-03-26 13:33:08
我喜歡這個想法的原因是,這將是學習如何創建自己的MSBuild任務的好方法。它足夠小,可以咬掉。 – granadaCoder 2013-03-26 13:34:01
我會使用XML任務編寫一些基本xml,然後使用xsl進行轉換。這並不是一個好主意,然後寫出一個文本文件的想法,但在文本文件中寫入1行1 ...在2013年我感覺不對。只是一個建議,不尋找戰鬥:O – granadaCoder 2013-03-26 13:31:49
看看我的回答(不是我的問題)在這個職位寫一些基本的XML。 http://stackoverflow.com/questions/13867117/how-to-add-a-linked-file-to-a-csproj-file-with-msbuild-3-5-framework – granadaCoder 2013-03-26 13:33:19
xslt給我蜂巢:)謝謝你這個想法雖然! – Loofer 2013-03-26 13:33:52