更改了一些原始信息,以使帖子在发现后更加关注真正的问题。
这些是当前环境的一些细节。我列出这些只是因为在其他帖子中提出了问题,以确定在当前环境中哪些是有效的,哪些是无效的:
Upon check-in TFS 2017 successfully builds a web project on the build agent.
A VS 2017 publish profile can manually transform the project properly
The build machine artifact location includes both the transform and profile files
工件位置如下图所示:
我在微软的 VS 网站、SO 和其他论坛上对此进行了深入研究,但是有很多不同的答案,其中很多是针对旧版本的,我无法将其拼凑起来。结果我有几个子问题。
1)转换可以同时参与构建和发布吗?. 我读到转换是在发布过程中应用的,而不是在构建过程中,这让我想知道在构建过程中是否甚至可以做到这一点。但是当我探索发布时,我看到所有相同的任务都可以在 Build 中使用,这表明我可以在 Build 或 Release 中使用转换进行发布。那是对的吗?
2) TFS 2017 是否需要大量特殊处理才能使用转换文件? 一些帖子指示编辑 .proj 文件。我想在进行这种详细操作之前得到确认,特别是考虑到 TFS 2017 的改进。
以下信息是名为“confPanner-CI”的当前构建定义的状态。阴影 PS 脚本已成功用于上传到托管位置以测试整个过程,但这对于需要应用转换的手头任务来说是不够的:
还为 powershell 脚本创建临时位置的完整 MSBuild 参数是:
/p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl=c:\ConfPlnrWeb
如果我要添加一个发布任务,我会看到 Publish Build Artifacts 任务:
但如下所示的设置似乎都与变换无关:
底线问题是:如何配置构建,以便 web 项目上传应用了正确的 web 转换?
更新: 在下面的答案之后添加的以下内容导致至少有一个地方可以在构建期间应用 VS 转换,并且可能也是一个发布。
在 MSBuild 构建解决方案任务中设置配置,如下所示: