我可以使用msbuild更新非xml配置文件吗?

时间:2013-03-26 11:36:56

标签: msbuild configuration-files

我有一个配置文件,它有一个旧的样式格式(没有xml)

dbpath=C:\Program Files\Mongodb\Data\Db
journal=true
smallfiles=true

根据我发布的系统,我想更新并更改=

之后的值

MSbuild有可能吗?你能告诉我怎么样吗?

我知道如何使用xml poke for xml config files。

3 个答案:

答案 0 :(得分:1)

没有什么比提出问题来帮助你回答的了!

我打算这样做

<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没有太多了解!

有更好的建议吗?

答案 1 :(得分:1)

编写自己的MSBuild任务,

http://msdn.microsoft.com/en-us/library/t9883dzc(v=VS.90).aspx

然后在MSBuild脚本中引用它。

答案 2 :(得分:1)

您可以设置模板系统并使用msbuild扩展包中的desokenise。请参阅此处的文档: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)"/>