visual-studio-2010 - 从 VS2008 升级到 VS2010 后 SGEN 不起作用

标签 visual-studio-2010 .net-4.0 sgen

我最近刚刚将 VS2008/.NET 3.5 SP1 项目升级到 VS2010 和 .NET 4。我有一个构建后事件,它调用 SGEN 来生成 XmlSerializers 程序集。

每当我尝试运行它时,都会出现以下错误。

"C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\sgen.exe" /debug /force /verbose /c:"platform:x86" "C:\path\to\SomeAssembly.dll"
Microsoft (R) Xml Serialization support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.3038]
Copyright (C) Microsoft Corporation. All rights reserved.
Error: An attempt was made to load an assembly with an incorrect format: c:\path\to\someassembly.dll.
  - Could not load file or assembly 'file:///c:\path\to\someassembly.dll'
or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

If you would like more help, please type "sgen /?".

我从命令行运行 SGEN 时遇到同样的错误,但我无法弄清楚问题是什么。有任何想法吗?

最佳答案

似乎 SGEN 的第二行输出很重要:

[Microsoft (R) .NET Framework, Version 2.0.50727.3038]

我发现另一个版本的 SGEN 似乎在 C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\sgen.exe 工作.当你运行它时它会输出这个:
[Microsoft (R) .NET Framework, Version 4.0.30319.1]

我不确定为什么两者都包含在 Windows 7 SDK 中...

关于visual-studio-2010 - 从 VS2008 升级到 VS2010 后 SGEN 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2746372/

相关文章:

multithreading - 超线程 CPU + 调度程序上的硬件线程(逻辑内核)

c# - 确定性监视器脉冲/等待并在生产者-消费者收集中实现超时

.net - 为什么TaskFactory.StartNew Task没有立即启动?

crystal-reports - 混合模式程序集是针对版本X构建的,如果没有其他配置信息,则无法在运行时的版本Y中加载

javascript - 在 Visual Studio 2010 中处理常见的 JavaScript 文件

visual-studio-2010 - Visual Studio 2010 中的设置是与解决方案一起存储还是与 IDE 一起存储?

visual-studio - VS 2010中监 window 口中自动查看矢量元素的方法

.net - 如何使 sgen.exe 保留程序集的版本?

visual-studio-2010 - VS2010 和引用正确的程序集(调试/发布)?