我得到了,"无法加载文件或程序集'Bla'或它的一个依赖项。有人试图加载一个格式不正确的程序,";
详细信息中的一部分说:
"WRN: 汇编绑定记录已关闭。 要启用汇编绑定失败记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1。 注意:有一些与汇编绑定失败记录相关的性能损失。 要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog]."。
所以,我想这可能会给我一些启示,让我知道为什么会出现上述错误(也许下一个YSOD会包含更明确的信息,说明它到底为什么会失败),我浏览了注册表的那个位置,但我没有看到这样的键。它有的就是:
\Fusion
(Default) value not set
\GACChangeNotification
\NativeImagesIndex
\PublisherPolicy
我错过了什么?
开始调查任何失败的绑定的一个好地方是使用"fuslogvw.exe" 工具。这可能会给你提供你所需要的与绑定失败有关的信息,这样你就不必去乱用任何注册表值来打开绑定日志。
[Fuslogvw MSDN页面][1]。
该工具应该在你的Microsoft SDKs文件夹中,根据你的操作系统,它应该是这样的: "C:\Program Files (x86)\Microsoft SDKs\Windowsv{SDK版本}A\Bin\FUSLOGVW.exe"
运行这个工具(它有一个GUI)并将设置为"将绑定失败记录到磁盘"。
点击"删除所有"以清除以前的任何绑定失败的列表。
在你的应用程序中重现绑定失败的情况
在实用程序中,点击刷新。然后你应该在列表中看到绑定失败的记录。
你可以通过在列表中选择它并点击 "查看日志 "来查看有关绑定失败的信息;
我寻找的第一件事是应用程序正在寻找程序集的路径。你还应该确保有问题的程序集的版本号是你所期望的。
[1]: http://msdn.microsoft.com/en-us/library/e74a18c4%28v=vs.71%29.aspx "Fuslogvw MSDN page";