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