当我们Add Service Reference
时,Visual Studio会创建xsd文件,如下所示:
与wsdl和.svcmap文件一起使用。
在后续更新中,使用Update Service Refernce
,而不是更新上述文件VS 2010继续添加更多&更多文件附加其名称..
这会在登记文件时造成麻烦。持续集成环境中的预定构建失败。 :-(编码方面没有任何错误。
你如何处理这种情况?我们可以强制Visual Studio
强制更新现有文件吗?
答案 0 :(得分:0)
我更喜欢使用svcutil来生成元数据(wsdl + xsd)和生成代理代码。
关于它的好处是没有“幕后魔术”发生;你看到并控制着每一个方面。
创建cmd文件以获取服务的WSDL + XSD。每当服务接口更改时运行cmd。将生成的wsdl和xsd文件添加到源代码控制中,就像处理任何其他外部依赖项(例如,第三方dll)一样。如果您还有实现该服务的程序集,Svcutil可以从URL下拉元数据,或从.net dll中提取元数据。
为(重新)生成代理代码创建cmd文件。每当服务元数据更改时运行它。将生成的.cs文件添加到项目中。
cmd文件看起来像这样。您可以定义命名空间映射,序列化程序,集合使用等。检查svcutil的帮助。
svcutil.exe。\ References \ MyService \ * .wsdl。\ References \ MyService \ * .xsd /命名空间:*,myNameSpace对象 /out:.\Source\MySubfolders\MySeviceProxy.cs /串行化:DataContractSerializer的 /ct:System.Collections.Generic.List`1
答案 1 :(得分:0)
在尝试更新服务引用之前,请检查自动生成的文件,以便VS可以访问这些文件。我相信您的文件已被锁定,导致Visual Studio无法更改它们。这将导致你所看到的。