顽固的装配,错误的钥匙?或者它是一个强名称问题?

时间:2012-07-19 12:36:45

标签: c# .net-assembly strong-named-key

我正在使用Microsoft的两个dll程序集来比较Xml。 XmlComparer.cs使用Microsoft.XmlDiffPatch,并在Visual Studio中正确添加了两个引用。 但是我收到了这条消息:

  

错误:无法加载文件或程序集'XmlDiffPatch,   Version = 1.0.8.28,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'   或其中一个依赖项。定位d程序集的清单   定义与程序集引用不匹配。 (感知从   HRESULT:0x80131040)异常:System.IO.FileLoadException:无法   加载文件或程序集'XmlDiff补丁,版本= 1.0.8.28,   Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其中的e   依赖。定位程序集的清单定义没有   匹配程序集引用。 (HRESULT异常:0x80131040)   文件名:'XmlDiffPatch,Version = 1.0.8.28,Culture = neutral,   PublicKeyToken = b03f 5f7f11d50a3a'at   XmlCompareLib.XmlComparer.Compare(String comparisonOptions,String   sourceX mlFileName,String changedXmlFileName,String   在C:\ Users \ xx \ Documents \ Visual中的resultHtmlViewFile)   Studio 2010 \ Projects \ ConsoleApplication3 \ ConsoleAp   plication3 \ XmlComparer.cs:第214行   C:\ Users \ xx \ Documents \ Visual Studio中的Ionic.Zip.Examples.ReadZip.Main(String [] args)   2010 \ Projects \ ConsoleApplication3 \ ConsoleApplication3 \ Pr ogram.cs:line   44

     

警告:装配绑定日志记录已关闭。要启用程序集绑定   失败日志记录,设置注册表值[HKLM \ Software \ Md   icrosoft \ Fusion!EnableLog](DWORD)为1.注意:有一些   与程序集绑定失败相关的性能损失。至   关闭此功能,删除注册表值   [HKLM \ Software \ Microsoft \ Fus ion!EnableLog]。

我认为这与强名有关。因为我检查了两个DLL并且它们没有强名称所以我试图生成一个密钥和强名称的程序集,但它显然不是相同的密钥。我现在卡住了..

1 个答案:

答案 0 :(得分:0)

这通常是我打开Fusion记录器并记录所有绑定的点。 Fusion的日志通常会更清晰一些。

要启用Fusion日志记录,您可以打开VisualStudio命令提示符,然后运行" fuslogvw.exe"。我最终安装在:

  

C:\ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Bin \ NETFX 4.0 Tools \ x64 \ FUSLOGVW.exe

但根据您的安装情况,这可能会有所不同。

然后,您点击"设置"按钮int hat工具,通过翻转单选按钮启用日志记录,然后运行您的应用程序,然后单击"刷新"在融合记录器中,它将显示发生的所有绑定(以及失败的绑定)。

请记住返回设置窗口并在完成后关闭日志记录:)