0

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

错误:无法加载文件或程序集“XmlDiffPatch,版本=1.0.8.28,文化=中性,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。locate d 程序集的清单定义与程序集引用不匹配。(HRESULT 除外:0x80131040)异常:System.IO.FileLoadException:无法加载文件或程序集“XmlDiff 补丁,版本=1.0.8.28,文化=中性,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项中的 e 个。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)文件名:XmlCompareLib.XmlComparer.Compare(字符串比较选项,字符串 sourceX mlFileName,字符串更改XmlFileName,

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

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

4

1 回答 1

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 工具,并通过翻转单选按钮启用日志记录,然后运行您的应用程序,然后在 fusion logger 中单击“刷新”,它将显示所有发生的绑定(以及失败的绑定) )。

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

于 2012-07-19T12:47:40.910 回答