【问题标题】:TFS build with Visual Studio 2017 - no config transforms使用 Visual Studio 2017 构建的 TFS - 无配置转换
【发布时间】:2018-04-09 07:16:56
【问题描述】:

我有一个需要应用 web.config 转换的 TFS 构建。我使用以下 MSBuild 参数对其进行了配置:

/p:DeployOnBuild=true /p:DeployTarget=Package /p:OutDir=$(build.artifactstagingdirectory) /p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false

使用 Visual Studio 2015 运行该步骤时,构建按预期工作 - 我应用了转换并创建了包。

使用 Visual Studio 2017 运行该步骤时,不会应用任何转换,也不会创建任何包。

还有其他方法可以使用 VS2017 配置构建以便应用配置转换吗?

【问题讨论】:

  • 你是用 VS 2017 编译时使用 SDK 构建还是使用旧式 csproj 文件?
  • 我正在运行一个使用 VS2017 的 TFS 构建。反过来,它使用“C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\msbuild.exe”执行命令并传入解决方案路径、我的参数等。
  • 我明白了,但是您是否将您的 csproj 文件更改为新样式的 MSBuild?
  • 不,新样式是什么?只是澄清一下,这不是一个 .net 核心项目。这是一个包含几个 Web 应用程序和一个 Windows 服务的解决方案。
  • 您仍然可以在 .net 项目中使用 SDK 样式构建,这就是我问的原因。看起来您没有将构建更改为使用类似 我比较每个版本的 MsBuild 的 Microsoft.Web.Publishing.Tasks.dll 库中的 TransformXml 任务。没有太大的不同表明任何剧烈的变化都会改变。你能分享你的csproj文件吗

标签: visual-studio-2017 tfsbuild


【解决方案1】:

根据您的描述和Hamid 的 评论。这可能与您的.csporj 文件有关。如果与 TFS 端相关,您可以尝试使用构建服务帐户直接在构建代理上构建项目以缩小问题范围。

如果本地构建也出现同样的错误,请尝试以下解决方案:

  1. 打开项目加载失败的项目文件(.csproj)

  2. 搜索<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />

  3. 将其更改为<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.targets" />
  4. 重新加载项目

这将动态正确设置正确的 Visual Studio 版本。

也可以看看这个博客:Cannot open VS 2015 Web project in VS 2017,它可以帮助你了解如何在 VS2017 中处理旧的 2015 项目。

【讨论】:

  • 我的 proj 文件中并没有导入该导入文件 - 我认为创建全新项目时也不会添加它。无论哪种方式,我都尝试添加这个 并且它也没有帮助。 (我不得不硬编码较低的版本,因为它没有为 vs2017 动态找到它)
  • @Zaneta 如果您在构建代理上手动构建项目,结果是什么?您是构建成功还是遇到同样的错误?
  • 从命令行运行构建会得到相同的结果 - 不会发生任何转换。
  • @Zaneta 如果是这样,问题似乎与您的环境设置而不是 TFS 方面有关,您能否使用本地 VS2017 成功构建,如果可以,建议您比较本地开发机器的环境和构建代理机器。如果不是,那么问题必须与您的项目设置有关。
【解决方案2】:

我能够完成这项工作的唯一方法是使用 VS 2015 或使用 MSBuild 运行构建并将 /p:VisualStudioVersion="14.0" 作为参数传递。 有了这个,VS 2015 目标文件也需要在构建服务器上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 2017-07-30
    • 2017-11-15
    • 2014-01-08
    • 1970-01-01
    相关资源
    最近更新 更多