我正在尝试使用TeamCity设置CI并停留在部署阶段。我的目标是避免在部署到每个环境时进行多次构建,因此我不使用msbuild并尝试使用msdeploy。
所以我需要使用Parameters.xml文件转换我的web.config文件。转换足够复杂,不仅仅是改变其中一个元素的值,我需要用另一个标签替换整个标签,例如所有connectionStrings部分都带有另一个文件的连接字符串部分(Web.Dev.config)。
我的parameters.xml文件如下所示:
<parameters>
<parameter name="Connection Strings" value="%teamcity.build.workingDir%\artifacts\Configs\B2B.Web\Web.Dev.config:://configuration/connectionStrings">
<parameterEntry type="XMLFile" scope="B2B.Web\\web.config$" match="//configuration/connectionStrings"/>
</parameter>
</parameters>
我无法意识到如何才能获得我的teamcity工件的路径。如果我设置绝对路径一切正常:
<parameters>
<parameter name="Connection Strings" value="C:\TeamCity\buildAgent\work\e4249c2d6a4e9e8d\artifacts\Configs\Web.Dev.config:://configuration/connectionStrings">
<parameterEntry type="XMLFile" scope="B2B.Web\\web.config$" match="//configuration/connectionStrings"/>
</parameter>
</parameters>
但是当我使用相对路径时它不起作用。
所以我的问题是:什么是我的web.dev.config文件的有效相对路径? 我使用TeamCity,所以我可以使用一些环境变量,如%teamcity.build.workingDir%。但我仍然无法使其发挥作用。