gpt4 book ai didi

.net - 在 TFS 2010 或 msbuild 中触发配置转换

转载 作者:行者123 更新时间:2023-12-03 14:40:28 25 4
gpt4 key购买 nike

我正在尝试使用 configuration transformations在持续集成环境中。

我需要一种方法来告诉 TFS 构建代理执行转换。我有点希望它在发现配置转换文件(web.qa-release.config、web.production-release.config 等......)后才能工作。但事实并非如此。

我有一个构建正确配置(qa-release、production-release 等)的 TFS 构建定义,并且我有一些在这些定义中构建的特定 .proj 文件,这些文件包含一些特定于环境的参数,例如:

<PropertyGroup Condition=" '$(Configuration)'=='production-release' ">
<TargetHost Condition=" '$(TargetHost)'=='' ">qa.web</TargetHost>
...
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)'=='qa-release' ">
<TargetHost Condition=" '$(TargetHost)'=='' ">production.web</TargetHost>
...
</PropertyGroup>

我从输出中知道正在构建正确的配置。现在我只需要学习如何触发配置转换。是否有一些我可以添加到构建中的最终 .proj 以启动转换并删除单个转换文件的恶作剧?

最佳答案

我找到了另一种方法来完成此任务,而不是创建自定义事件。您只需要修改正在构建的 Web 应用程序的 Visual Studio 项目文件。
添加以下内容(可以在项目文件末尾找到“AfterBuild”目标的占位符):

<Target Name="AfterBuild" Condition="$(IsAutoBuild)=='True'"> 
<ItemGroup>
<DeleteAfterBuild Include="$(WebProjectOutputDir)\Web.*.config" />
</ItemGroup>
<TransformXml Source="Web.config" Transform="$(ProjectConfigTransformFileName)" Destination="$(WebProjectOutputDir)\Web.config"/>
<Delete Files="@(DeleteAfterBuild)" />
</Target>
然后你只需要添加 /p:IsAutoBuild="True"到构建定义的“高级”部分中的“MSBuild Arguments”字段。
这将强制 TFS 2010 在 TFS 进行构建时对 web.config 进行转换。
更多详情请访问 Kevin Daly's Blog .

关于.net - 在 TFS 2010 或 msbuild 中触发配置转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1867107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com