.net 更新webreference会给不同版本的dll带来问题

.net 更新webreference会给不同版本的dll带来问题,.net,asmx,.net,Asmx,在我的应用程序中,我使用了一些dll,比如library.dll,版本1.0 在我的Web服务中,我也使用library.dll,但版本为2.0 当我更新webreference时,dll中的类也会在webreference中生成 这会带来麻烦,因为在我的应用程序中,dll中定义的类现在在引用中也可用,并且存在不匹配 我怎样才能解决这个问题?我需要能够告诉webservice在以一种或另一种方式更新webreference时忽略dll代码 我使用Visual Studio 2008。您可以在生成

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

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

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

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

我使用Visual Studio 2008。

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

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

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

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

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

大概是这样的:

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


如果我对5个dll有此问题,您可以对每个库多次使用
/reference
开关。我刚刚验证过,它似乎不适用于非WCF服务。很抱歉