0

我曾经从一个 .NET 4 程序集运行 sgen.exeC:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\sgen.exe并以它为目标,它构建得很好。将项目升级到 .NET 4.5 后,失败并出现以下错误:

Microsoft (R) Xml 序列化支持实用程序
[Microsoft (R) .NET Framework,版本 2.0.50727.3038]
版权所有 (C) 微软公司。版权所有。
sgen.exe:错误:无法生成临时类(结果=1)。
错误 CS0012:类型“System.Object”在未引用的程序集中定义。您必须添加对程序集“System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的引用。
错误 CS0012:“System.ComponentModel.INotifyPropertyChanged”类型在未引用的程序集中定义。您必须添加对程序集“System.ObjectModel,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”的引用。

我想我需要为新框架更新 sgen.exe,所以我尝试了C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 ToolsC:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools但也失败了:

Microsoft (R) Xml 序列化支持实用程序
[Microsoft (R) .NET Framework,版本 4.0.30319.33440]
版权所有 (C) 微软公司。版权所有。
错误:无法生成临时类(结果=1)。
错误 CS0012:类型“System.Object”在未引用的程序集中定义。您必须添加对程序集“System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的引用。
错误 CS0012:“System.ComponentModel.INotifyPropertyChanged”类型在未引用的程序集中定义。您必须添加对程序集“System.ObjectModel,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”的引用。

是否可以在 .net 4.5 程序集上使用 sgen.exe?

(编辑)使用命令行:

PS C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1a\bin\NETFX 4.5.1 Tools\x64> . .\sgen /f /a:"D:\MyProject\bin\x64\Debug\MyProgram.exe"

4

0 回答 0