HRESULT:0x80131040:find的程序集清单定义不匹配程序集引用
定位的程序集清单定义与程序集引用不匹配
通过ncover运行nunit时得到这个。 任何想法?
这是程序集之间的不匹配:从程序集引用的DLL没有预期的方法签名。
清理解决scheme,重build所有内容,然后重试。
另外,如果这是对GAC中某些内容的引用,请注意。 可能是某处某处指向了不正确的版本。 确保(通过每个引用的属性)select了正确的版本或将特定版本设置为false。
我最近有这个问题,我在有问题的DLL上运行“depends.exe”。 它向我展示了dll是用x86编译的,而一些依赖用x64编译的。
如果你仍然有麻烦,我会build议使用depends.exe。
这通常发生在testing环境的某个DLL的版本与开发环境不匹配时。
清理并构build您的解决scheme,并将所有的DLL发送到发生错误的环境中,以解决问题
在我的情况下,一个wcfrest服务项目,我不得不在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>
我的问题通过删除所有的运行时间部分解决
<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>
在我的特殊情况下,我通过在VBScript中完成的CreateObject
得到了这个结果。 在我的情况下,原因是驻扎在GAC中的程序集版本,比我编译的版本还要旧。 (试图解决早期的问题,我在GAC中安装了程序集)。
因此,如果您正在使用COM可见类,那么在向RegASM注册新程序集之前,请确保从GAC中删除了较旧版本的程序集。
当通过共享文件夹访问来自不同计算机的项目文件时,我遇到了类似的问题。 在我的情况下,干净+ reabuild没有帮助。 必须从输出目录中删除bin和objects文件夹。
在我的情况下,这是因为WebGrease发生。 我更新到最新版本(使用NuGet),但它与依赖冲突。 我手动添加下面的代码在web.config中,它的工作魅力。
<dependentAssembly> <assemblyIdentity name="WebGrease" culture="neutral" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" /> </dependentAssembly>
请注意我的解决scheme只有在错误与WebGrease相关时才能使用。 错误代码将保持不变。 另外,您需要相应地更改oldVersion和newVersion中的版本。
我在web api项目中遇到了这个问题。
Api项目正在使用版本为3的库的nuget包。其中一个引用的程序集说X正在使用与版本2相同的nuget包的旧版本。
无论何时build立引用的程序集或重build其他任何引用X的项目,API项目的程序集都会使用较低的版本进行更新。 并得到这个大会参考错误。
重build工程,但在我的情况下,我想要一个长期的解决scheme。
我让程序集引用了相同版本的nuget包。
这里只是另一个案例。 从第一次反编译XML文件到VS2010 / .NET 4下的对象时,我从Managed Debugging Assistant中得到了这个错误。一个包含这些对象的类的DLL在生成后事件(通常是Microsoft风格的东西)中生成。 在同样的解决scheme中工作得非常好,在另外一个项目中出现了问题。 错误文本:
检测到BindingFailure消息:显示名称为MyProjectName.XmlSerializers的程序集无法加载到ID为1的AppDomain的“LoadFrom”绑定上下文中。失败的原因是:System.IO.FileLoadException:无法加载文件或程序集MyProjectName.XmlSerializers,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一。 定位的程序集清单定义与程序集引用不匹配。 (来自HRESULT的exception:0x80131040)
由于这里的一些答案提示平台不匹配,我注意到3个项目和解决schemeselect了“混合平台”configuration,3个项目被编译为x86而不是AnyCPU。 我没有特定于平台的代码(尽pipe一些供应商提供的DLL依赖于几个x86库)。 我用这个replace了所有出现的x86到AnyCPU:
for a in $( egrep '(x86|AnyCPU)' */*.csproj *.sln -l ) ; do echo $a ; sed -i 's/x86/AnyCPU/' $a ; done
然后该项目将build立,但运行或debugging代码的所有选项将变灰。 重新启动VS不会帮助。
为了防万一,我使用了git来引用x86库,但是保留了所有我编译的代码的AnyCPU。
对于Winform应用程序,在F5或开始debuggingbutton后灰色? 我卸载并重新启动了项目(这也是最初出现问题的地方)。
之后,一切都恢复原状:程序运行时没有出现最初的错误。
请参阅http://www.catb.org/jargon/html/R/rain-dance.html,http://www.catb.org/jargon/html/V/voodoo-programming.html或http::// www .catb.org /行话/ HTML /我/ incantation.html和链接。
我有问题,它不会find贝宝大会,这是因为我已经命名我的解决scheme贝宝。 我敢肯定这不会是任何人的答案,但认为我会分享它无论如何: C#ASP.NET MVC贝宝没有find汇编
我只是从项目中删除settings.lic文件,并开始工作!
如果您尝试将组件添加到Visual Studio中时出现此错误,请尝试安装怪异的开发工具( Microsoft.VisualStudio.TemplateWizardInterface
)
考虑这个解决scheme(礼貌larocha(谢谢,无论你是谁)):
- 在文本编辑器中打开C:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ devenv.exe.config
- find这个string:“
Microsoft.VisualStudio.TemplateWizardInterfac
e” - 将元素注释掉,如下所示:
<dependentAssembly>
<!-- assemblyIdentity name="Microsoft.VisualStudio.TemplateWizardInterface" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" / -->
<bindingRedirect oldVersion="0.0.0.0-8.9.9.9" newVersion="9.0.0.0" />
</dependentAssembly>
来源: http : //webclientguidance.codeplex.com/workitem/15444
- System.Data.Linq.ChangeConflictException:行未find或更改
- 什么是最成熟的.NET的BDD框架?
- 即使在得到“正在被另一个进程使用”exception的情况下,我如何才能读取文件?
- WebAPI和WebAPI 2有什么区别?
- “Blend \ Newtonsoft.Json.dll”和“Solution \ packages \ … \”中均存在“Newtonsoft.Json …”
- 在Visual Studio解决scheme中更改我的所有项目的目标框架
- 如何更改winform DataGridview标题的颜色?
- 只使用XAML绘制纯色三angular形
- entity framework – 无法将lambdaexpression式转换为“string”types,因为它不是委托types