2

有没有人遇到过 Svcutil 和 /dconly 选项的问题,它为程序集中的每个数据类型生成元数据,即使它没有用 [DataContract()] 属性标记?它似乎还在为仅在代码中引用的类型生成元数据,例如 XmlDictionaryReaderQuotas,即使这些不是我在其上生成元数据的物理程序集的一部分。

一些信息:使用 .NET 4.0 版本的 SvcUtil。类是否为空都没有关系。在命令行中没有为 SvcUtil 指定引用。

命令行:

"C:\In Progress Work (Prospective)\Prospective Server\Prospective Server\Management\Prospective.Server.Server.NET40.Debug.AnyCPU.dll" /nologo /t:metadata /d:"C:\In Progress Work (预期)\预期服务器\预期服务器\管理" /dconly

4

1 回答 1

0

解决方法是明确指定要使用的 XSD。在我的情况下,这仍然足以溢出命令行的字符限制;相反,我编写了一些代码来删除所有额外的 XSD,并继续在 SvcUtil 命令上使用 *.xsd。但是,这可能很棘手,因为它需要详细了解程序集中的每个WCF命名空间。

我已经向 Microsoft 提交了错误报告,因为在他们的任何公开文档中都没有将这种行为定义为正确的。您可以在此处查看错误报告并投票:http ://connect.microsoft.com/wcf/feedback/details/641777/svcuil-with-datacontractonly-generates-xsds-for-all-types-in-assembly-不考虑数据合同属性

于 2011-02-10T23:22:21.467 回答