【问题标题】:SGEN (x86): Tells me .NET4.6 is requiredSGEN (x86):告诉我需要 .NET4.6
【发布时间】:2015-07-28 14:58:11
【问题描述】:

我已经安装了 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 中,都会出现此窗口,并且没有为 sgen 提供命令行选项:

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

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

登录Microsoft Connect

【问题讨论】:

  • 第二个错误很明显——你不能在 x86 dll 上使用 x64 工具
  • 是的,我知道,他们非常希望他们在 x64 工具中填充 32 位逻辑。
  • 如果你只运行 sgen 会得到什么?版本号是多少?在我的机器上是 4.6.81。您可能需要修复您的安装
  • C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\sgen.exe 没有版本号,运行它会产生一个模式对话框告诉我安装.Net 4.6。但是我可以运行 gacutil, regasm
  • 那么你的安装可能有问题。

标签: c# visual-studio-2015 sgen


【解决方案1】:

事实证明这完全是我们的错。

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

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

删除这个显式的supportedRuntime 标记解决了这个问题。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      • 2014-05-16
      • 2019-03-23
      相关资源
      最近更新 更多