更新webreference会给不同版本的dll带来麻烦

时间:2009-11-17 13:04:48

标签: .net asmx

在我的应用程序中,我使用了一些dll,比如library.dll,版本1.0 在我的web服务中,我也使用library.dll,但是版本2.0

当我更新webreference时,dll内的类也会在webreference中生成。

这会带来麻烦,因为在我的应用程序中,dll中定义的类现在也可以在引用中使用,并且存在不匹配。

我该如何解决这个问题?我需要能够告诉webservice在以一种或另一种方式更新webreference时忽略dll代码。

我使用Visual Studio 2008。

2 个答案:

答案 0 :(得分:0)

您可以在生成客户端代理时使用reference开关:

svcutil.exe /reference:c:\library.dll http://example.com/service.svc?wsdl

这将在library.dll中查找WSDL中相同的类,并且不会在代理中重新创建它们(相同的类我的意思是相同的名称空间和类型名称)。

答案 1 :(得分:0)

好吧,我自己找到了解决方案。

必须在GAC中部署扩展,并且必须更改machine.config。

类似的东西:

<system.xml.serialization>
    <schemaImporterExtensions>
      <add name="SchemaImporterExtensions"
           type="Library.DesignTime.SchemaImporterExtension,
                 Library.Framework.DesignTime" />
    </schemaImporterExtensions>
</system.xml.serialization>