卸载 VS2015 后,MSBUILD 在 VS2017 中的错误位置使用? XmlSerializers 使用不正确的版本构建

MSBUILD used in from wrong location in VS2017 after uninstalling VS2015? XmlSerializers builds with incorrect versions

我卸载了VS2017和VS2015,只重新安装了VS2017。现在,以前在 VS2017 中 building/working 正常的一些 asp.net 3.5 程序集不再正确构建。

即使项目引用 system.xml v2.0,在构建时,*.XmlSerializers 程序集也会引入 v4.0 版本的程序集。导致我们在 asp.net 2.0 应用程序池中的站点 运行 不再运行。

这是我的程序集应用程序设置:

这是我的项目参考:

此处 Ildasm.exe 显示错误的 system.xml 拉入:

我在 web.config 中的唯一绑定如下:

我正在尝试确定它是否是构建 MSBuild 是 运行 来自 C:\Windows\Microsoft.NET\Framework\v4.0.30319 路径还是什么。

更新: 我 运行 在我的台式机(不再正常运行的那个)和我的笔记本电脑(仍然可以使用)上构建了一个具有详细输出的版本。显然存在很多差异,但跳出的可能问题是:

笔记本电脑(仍在工作)
SDK35ToolsPath = C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\
MSBuildVersion = 15.7.180
TargetFrameworkSDKToolsDirectory = C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\ VSSDK140Install = C:\Program Files (x86)\Microsoft Visual Studio 14.0\VSSDK\桌面缺失
Microsoft (R) Visual C# 编译器版本 2.8.3.63029 (e9a3a6c0) (TaskId:28)

桌面(不工作)
SDK35ToolsPath =
MSBuildVersion = 15.9.21
TargetFrameworkSDKToolsDirectory = C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\
Microsoft (R) Visual C# 编译器版本 2.10.0.0 (b9fb1610) (TaskId:28)

想知道我是否应该重新安装 VS2015,即使我永远不会使用 UI?

从评论中复制。

VS2017/2019 不再默认安装 .NET Framework 3.5 SDK。这就是为什么您看到 SDK35ToolsPath 在 MSBuild 日志记录中为空白。

转到 VS2017/2019 安装程序和 select .NET Framework 3.5 开发工具进行安装。然后它应该没有问题地编译。