web.config 基于解决方案配置的转换
web.config transformation based on solution configuration
Morning/afternoon/evening全部。
我正在尝试应用 web.config 转换作为 Jenkins 构建的一部分。通过将以下内容添加到我的 csproj,我得到了转换 运行ning:
<Target Name="BeforeBuild">
<TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="Web.config" />
</Target>
这很棒,除了当解决方案是 运行 本地时它现在会转换文件这一事实。所以我试图通过添加一个条件来防止这种情况只对 Jenkins 构建应用转换。我添加了一个解决方案配置,设置发布配置文件以使用它,然后尝试添加一个条件...
<Target Name="BeforeBuild">
<TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="Web.config" Condition="'$(Configuration)' == 'Debug Build'" />
</Target>
...而且......没用 :-(.
事实上,当添加此条件时,转换完全停止工作(我可以通过在本地更改解决方案配置并构建和观察本地 web.config 文件永远不会更改来断言,无论选择哪个选项) .
当且仅当解决方案配置设置为 'Debug Build' 时如何获得转换 运行?
提前致谢。
如果您在构建服务器上使用发布配置文件,则可以使用 profile specific web.config transform 添加您的自定义转换,而无需修改项目文件。您只需在解决方案资源管理器中右键单击您的发布配置文件,然后 select Add config transform
.
生成的转换文件将命名为 web.[publishprofile].config
,此转换将在配置特定 (Debug/Release) 转换后 运行。它只会在 publishing/packaging 使用该发布配置文件时执行。
如果发布配置文件转换不符合您的需要,只需在 jenkins 构建服务器上添加 /p:CustomConfigTransform=buildserver
msbuild 参数并在您的构建脚本中测试此 属性。
<Target Name="BeforeBuild">
<TransformXml Source="Web.config" Transform="Web.$(CustomConfigTransform).config" Destination="Web.config" Condition="'$(CustomConfigTransform)' != ''" />
</Target>
无需添加新的构建配置。另外我不确定是否支持转换到同一个文件。
Morning/afternoon/evening全部。
我正在尝试应用 web.config 转换作为 Jenkins 构建的一部分。通过将以下内容添加到我的 csproj,我得到了转换 运行ning:
<Target Name="BeforeBuild">
<TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="Web.config" />
</Target>
这很棒,除了当解决方案是 运行 本地时它现在会转换文件这一事实。所以我试图通过添加一个条件来防止这种情况只对 Jenkins 构建应用转换。我添加了一个解决方案配置,设置发布配置文件以使用它,然后尝试添加一个条件...
<Target Name="BeforeBuild">
<TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="Web.config" Condition="'$(Configuration)' == 'Debug Build'" />
</Target>
...而且......没用 :-(.
事实上,当添加此条件时,转换完全停止工作(我可以通过在本地更改解决方案配置并构建和观察本地 web.config 文件永远不会更改来断言,无论选择哪个选项) .
当且仅当解决方案配置设置为 'Debug Build' 时如何获得转换 运行?
提前致谢。
如果您在构建服务器上使用发布配置文件,则可以使用 profile specific web.config transform 添加您的自定义转换,而无需修改项目文件。您只需在解决方案资源管理器中右键单击您的发布配置文件,然后 select Add config transform
.
生成的转换文件将命名为 web.[publishprofile].config
,此转换将在配置特定 (Debug/Release) 转换后 运行。它只会在 publishing/packaging 使用该发布配置文件时执行。
如果发布配置文件转换不符合您的需要,只需在 jenkins 构建服务器上添加 /p:CustomConfigTransform=buildserver
msbuild 参数并在您的构建脚本中测试此 属性。
<Target Name="BeforeBuild">
<TransformXml Source="Web.config" Transform="Web.$(CustomConfigTransform).config" Destination="Web.config" Condition="'$(CustomConfigTransform)' != ''" />
</Target>
无需添加新的构建配置。另外我不确定是否支持转换到同一个文件。