0

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

错误 2命名空间“Microsoft”中不存在类型或命名空间名称“Xml”(您是否缺少程序集引用?)

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

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

编辑:

事实证明,问题是因为生成的程序集的目标是 .NET 框架的版本大于引用它的程序集。现在问题变成了 - 如何使用 Sgen 生成针对特定 .NET 框架版本的序列化程序集。

4

1 回答 1

0

好的,所以在阅读了这个问题的答案后,我设法生成了一个序列化程序集,该程序集具有 .NET 3.5 的正确“运行时版本”并且一切都按预期工作,很抱歉浪费时间。

于 2014-08-26T15:19:40.100 回答