C# SGEN(x86):告诉我。NET4.6是必需的
我已经安装了Visual Studio 2015,正在尝试升级我们的(32位)VS2010项目。 当项目编译时,它会尝试从运行SGEN(Generate Serialization Assembly=on) 无论是从命令行还是在visual studio中,都会显示此窗口,并且没有为sgen提供命令行选项: 这是作为VS2015(版本)的一部分安装的.NET 4.6。我可以运行32位.Net 4.6程序集,因此它已安装 在.Net4.6安装上使用“修复”无法修复问题或报告任何问题。.NET x86和x64的注册表项看起来很可靠(版本相同)C# SGEN(x86):告诉我。NET4.6是必需的,c#,visual-studio-2015,sgen,C#,Visual Studio 2015,Sgen,我已经安装了Visual Studio 2015,正在尝试升级我们的(32位)VS2010项目。 当项目编译时,它会尝试从运行SGEN(Generate Serialization Assembly=on) 无论是从命令行还是在visual studio中,都会显示此窗口,并且没有为sgen提供命令行选项: 这是作为VS2015(版本)的一部分安装的.NET 4.6。我可以运行32位.Net 4.6程序集,因此它已安装 在.Net4.6安装上使用“修复”无法修复问题或报告任何问题。.NET x
登录解决方法是将构建目标步骤指向
C:\Program Files(x86)\Microsoft SDK\Windows\v8.1A\bin\NETFX 4.5.1 Tools事实证明,这完全是我们的错 作为升级的一部分,我们的构建环境说明告诉我们向sgen添加一个.config文件,我们将其改编为.net 4.6:
<configuration>
<runtime>
<loadFromRemoteSources enabled="true" />
</runtime>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.6"/>
</startup>
</configuration>
删除此显式supportedRuntime标记修复了此问题 第二个错误是显而易见的-你不能在x86 dllYep上使用x64工具我知道,这是一个绝望的希望,他们在x64工具中填充了32位逻辑。如果你只运行sgen,你会得到什么?版本号是多少?在我的机器上是4.6.81。您可能需要修复您的安装C:\Program Files(x86)\Microsoft SDK\Windows\v10.0A\bin\NETFX 4.6 Tools\sgen.exe没有版本号,运行它会生成一个模式对话框,告诉我安装.Net 4.6。但是我可以运行gacutil,Regasm,那么您的安装可能已损坏。
<configuration>
<runtime>
<loadFromRemoteSources enabled="true" />
</runtime>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.6"/>
</startup>
</configuration>