我生成的序列化 .dll 有一个奇怪的问题。.dll 已成功生成,我可以在我的项目中引用它,所有类型都按预期包含在命名空间Microsoft.Xml.Serialization.GeneratedAssembly
中,甚至智能感知也在获取类型和命名空间。但是,当我去构建引用生成程序集中的任何类型的项目时,我会遇到以下错误:
错误 2命名空间“Microsoft”中不存在类型或命名空间名称“Xml”(您是否缺少程序集引用?)
很奇怪,不是吗?就智能感知而言,命名空间显然存在,我以前从未遇到过这样的问题。我试图重新生成程序集,仍然是同样的问题。
现在我已经sgen.exe
使用标志运行/keep
并将生成的源代码复制到我的项目中,这很好。我只是好奇是否有办法解决这个问题,或者其他人是否曾经遇到过它。
编辑:
事实证明,问题是因为生成的程序集的目标是 .NET 框架的版本大于引用它的程序集。现在问题变成了 - 如何使用 Sgen 生成针对特定 .NET 框架版本的序列化程序集。