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

时间:2014-08-26 13:36:36

标签: c# sgen

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

  

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

相当奇怪,不是吗?就intellisense而言,名称空间显然存在,我之前从未遇到过这样的问题。我试图重新组装,仍然是同样的问题。

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

修改

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

1 个答案:

答案 0 :(得分:0)

好的,所以在阅读this question上的答案后,我设法生成了一个序列化程序集,它具有正确的.NET 3.5运行时版本,一切都按预期工作,抱歉浪费时间。