Jer*_*Gee 48
这是程序集之间的不匹配:从程序集引用的DLL没有预期的方法签名.
清理解决方案,重建所有内容,然后重试.
另外,如果这是对GAC中某些内容的引用,请务必小心; 它可能是某个地方的东西指向一个不正确的版本.确保(通过每个引用的属性)选择了正确的版本或将特定版本设置为false.
我最近有这个问题,我在有问题的dll上运行'depends.exe'.它向我展示了dll是在x86中编译的,而一些依赖项是在x64中编译的.
如果您仍然遇到麻烦,我建议使用depends.exe.
在我的wcf休息服务项目的情况下,我不得不在web.config中添加一个运行时部分,其中所请求的dll是:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
.
.
.
<runtime>
Run Code Online (Sandbox Code Playgroud)
通过删除所有运行时部分解决了我的问题
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)
就我而言,我在调试时收到此消息:
"Error while calling service <ServiceName> Could not load file or assembly 'RestSharp,
Version=105.2.3.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference.
(Exception from HRESULT: 0x80131040)"
Run Code Online (Sandbox Code Playgroud)
原因
在我的项目中,我有 2 个使用 RestSharp 的内部组件,但两个组件都有不同版本的 RestSharp(一个带有 version105.2.3.0
另一个带有 version 106.2.1.0
)。
解决方案
将其中一个组件升级到更新版本或降级另一个组件。在我的情况下,对我来说,从NuGet 包管理器降级106.2.1.0
到105.2.3.0
更新组件比更新组件更安全。所以这两个组件具有相同的版本。
重建并解决了问题。
归档时间: |
|
查看次数: |
190175 次 |
最近记录: |