SGEN.exe-找不到Microsoft.Xml命名空间

本文关键字:Xml 命名空间 Microsoft 找不到 exe- SGEN | 更新日期: 2023-09-27 18:19:31

我生成的序列化.dll有一个奇怪的问题。.dll已成功生成,我可以在我的项目中引用它,所有类型都按预期包含在命名空间Microsoft.Xml.Serialization.GeneratedAssembly中,甚至intellisense也在拾取类型和命名空间。但是,当我参考生成的程序集中的任何类型来构建项目时,我会遇到一个错误:

错误2类型或命名空间名称"Xml"在命名空间"Microsoft"(是否缺少程序集引用?)

很奇怪,不是吗?就intellisense而言,命名空间显然存在,我以前从未遇到过这样的问题。我试图重新生成程序集,但仍然存在相同的问题。

现在,我已经运行了带有标志/keepsgen.exe,并将生成的源代码复制到我的项目中,这很好。我只是好奇是否有办法解决这个问题,或者其他人以前是否遇到过这个问题。

编辑:

事实证明,这个问题是因为生成的程序集所针对的.NET框架版本比引用它的程序集的版本更高。现在的问题变成了-如何使用Sgen生成一个针对特定.NET框架版本的序列化程序集。

SGEN.exe-找不到Microsoft.Xml命名空间

好的,所以在阅读了这个问题的答案后,我成功地生成了一个序列化程序集,该程序集具有正确的.NET 3.5"运行时版本",并且一切正常,很抱歉浪费时间。