在 VS 2017 的自托管 VSTS-BuildAgent 上构建失败并出现错误 "The TransformWebConfig task could not be loaded[...]"

Building on a Self-hosted VSTS-BuildAgent for VS 2017 fails with error "The TransformWebConfig task could not be loaded[...]"

我们切换到 Visual Studio 2017 年,但我们的自托管构建代理从 VSTS 获取工作时遇到了问题。

一个 VSTS 构建步骤是使用 "Visual Studio Build: Build Solution ***.sln" 使用 "Visual Studio Version: Visual Studio 2017" 构建所有解决方案。
我们所有选择 "ASP.NET Core Web Application (.NET Core)" 项目类型的项目都会出现以下错误。

C:\Program Files (x86)\Microsoft Visual Studio17\Professional\MSBuild\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\TransformTargets\Microsoft.NET.Sdk.Publish.TransformFiles.targets(54,5): error MSB4062: The "TransformWebConfig" task could not be loaded from the assembly C:\Program Files (x86)\Microsoft Visual Studio17\Professional\MSBuild\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0....\tools\net46\Microsoft.NET.Sdk.Publish.Tasks.dll. Could not load file or assembly 'file:///C:\Program Files (x86)\Microsoft Visual Studio17\Professional\MSBuild\Sdks\Microsoft.NET.Sdk.Publish\tools\net46\Microsoft.NET.Sdk.Publish.Tasks.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format. Confirm that the declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.

附加信息:

有人知道是什么原因造成的吗?

看看这个link。看起来这个问题之前已经解决了

https://github.com/Microsoft/msbuild/issues/1010

但是,最近对 MSBuild 进行了另一项更改(从上面引用)。我的直觉是 'downgrade' 导致 'fix' 被忽略(使用了错误的 DLL 版本)

https://github.com/aspnet/Scaffolding/pull/321

往下看: https://github.com/aspnet/websdk/pull/174

我报告了相同的行为,事实证明这只是 64 位版本的 MSBuild 中的一个问题,切换回对我有用的 32 位版本,直到这个问题得到解决。