启动exec时无法加载程序集或文件

时间:2010-03-02 03:33:24

标签: .net dependencies

当我将整个程序直接复制到另一台机器时,我遇到以下异常。我可以使用哪些工具进行调试?谢谢。

未处理的异常:System.TypeInitializationException:类型初始值设定项 'SomeClass'扔了一个例外 ñ。 ---> System.IO.FileLoadException:无法加载文件或程序集“ SomeAssembly.dll ,版本= 0.0.0.0,Culture = neut ral,PublicKeyToken = null'或其依赖项之一。这个应用程序很容易 d启动,因为应用程序配置不正确。重新安装 应用程序可以解决此问题。 (HRESULT异常:0x800736B1) 文件名:' SomeAssembly.dll ,版本 = 0.0.0.0,Culture = neutral,PublicKeyToken = null'---> System.Runtime.InteropServi ces.COMException(0x800736B1):此应用程序无法启动,因为 应用程序配置不正确。重新安装应用程序可能会修复此问题 的问题。 (HRESULT异常:0x800736B1)

3 个答案:

答案 0 :(得分:4)

这是Windows错误,而不是.NET错误。错误代码为14001,ERROR_SXS_CANT_GEN_ACTCTX,“应用程序无法启动,因为它的并排配置不正确。请参阅应用程序事件日志以获取更多详细信息。”

查看Windows事件日志,它会告诉您忘记在目标计算机上安装的DLL。如果它是混合模式程序集,那么它通常是C / C ++运行时DLL,或者您部署了调试版本。

答案 1 :(得分:1)

您可以使用fusion log来调试此类问题。它将显示它在哪里搜索依赖项,如果它找到它们,如果它找到它们并且无法加载它们,为什么。

答案 2 :(得分:0)

如果您只是复制文件,请检查操作系统是否阻止了dll。要检查这一点,请右键单击dll,转到“属性”,然后在“高级”按钮下的对话框右下角查看。如果有一个按钮显示“取消阻止”,则单击它。您必须对所有这些执行此操作,或者使用gacutil实用程序将它们添加到GAC。