我有一个简单的Webforms网站项目。该项目使用通过NuGet添加的Microsoft Application Block Unity 3.5(DI容器)。
现在我正在使用第三方Web服务。当我添加服务引用并构建后,出现以下情况:
Error 19 Reference.svcmap: Could not load file or assembly 'Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) App_WebReferences/MyExternalService/
因此,我安装了Microsoft.Practices.ServiceLocation,但它仍然抱怨该程序集。
我尝试将以下内容添加到web.config文件中,但仍无法解决。
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Practices.Unity" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Practices.ServiceLocation" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.0.0" />
</dependentAssembly>
</assemblyBinding>
一旦我卸载Unity包,一切都好了。没有错误,我可以使用服务代理。
尝试过Clean Build等方法,但仍然无法解决。
有什么想法吗?