<configuration>
<userSettings>
<IntegrationTests.Resources.IntegrationTests>
<setting name="UserAppPath" serializeAs="String">
<value>C:\Program Files (x86)\App\</value>
</setting>
<setting name="LogFilePath" serializeAs="String">
<value>C:\logfiles\</value>
</setting>
</IntegrationTests.Resources.IntegrationTests>
</userSettings>
</configuration>
我有上面的xml文件,我希望我的构建作业在作业运行期间动态编辑这些路径值...所以如果设置名称是UserAppPath,那么如果设置为LogFilePath则更新相同的值标签,并使用相同的路径然后根据我选择的奴隶编辑日志文件路径...就像我明智的那样,我可能有很多设置,但可能有兴趣只更改其中的一些。我试过替换,插入ant xmltask的问题。但没有解决我的问题....任何帮助将不胜感激
答案 0 :(得分:3)
将变量放在属性文件中,例如
user.app.path=C:\\Program Files (x86)\\App\\
logfile.path=C:\\logfiles\\
创建配置文件的模板版本,例如
<configuration>
<userSettings>
<IntegrationTests.Resources.IntegrationTests>
<setting name="UserAppPath" serializeAs="String">
<value>@user.app.path@</value>
</setting>
<setting name="LogFilePath" serializeAs="String">
<value>@logfile.path@</value>
</setting>
</IntegrationTests.Resources.IntegrationTests>
</userSettings>
</configuration>
在您的构建文件中,创建一个配置文件的版本,用filterset替换模板版本中的占位符:
<project name="test" default="test">
<target name="test">
<copy file="config_template.xml" tofile="config.xml">
<filterset begintoken="@" endtoken="@">
<filtersfile file="config.properties" />
</filterset>
</copy>
</target>
</project>