SGEN (x86):告诉我需要 .NET4.6

SGEN (x86): Tells me .NET4.6 is required

我已经安装了 Visual Studio 2015 并且正在尝试升级我们的(32 位)VS2010 项目。 当项目编译时,它会尝试从

运行 SGEN(Generate Serialization Assembly=on)
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\sgen.exe

无论是从命令行还是在 visual studio 中,都会出现此 window 并且没有为 sgen 提供命令行选项:

这是作为 VS2015(发行版)的一部分安装的 .NET 4.6。我可以运行 32bit .Net 4.6 程序集,所以已经安装了。

在 .Net4.6 安装上使用 'repair' 没有解决问题或报告任何问题。 .NET x86 和 x64 的注册表项似乎是正确的(并且版本相同)。

登录Microsoft Connect

解决方法是将构建目标步骤指向

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 工具

原来这完全是我们的错。

作为我们升级的一部分,我们的构建环境说明告诉我们将一个 .config 文件添加到我们为 .net 4.6 改编的 sgen:

<configuration>
<runtime>
    <loadFromRemoteSources enabled="true" />
</runtime>
<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.6"/>
</startup>
</configuration>

删除这个明确的 supportedRuntime 标签解决了这个问题。