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