定位的程序集的清单定义与程序集引用不匹配.HRESULT: 0x80131040

本文关键字:程序集 不匹配 引用 HRESULT 0x80131040 定义 单定义 定位 | 更新日期: 2023-09-27 17:54:21

我正在尝试从我的windows窗体应用程序打开IE浏览器。我有方法A,它调用另一个方法B,它使用SHDocVw打开浏览器。我得到这个错误的地方是当我试图从方法A调用方法B时,即使设置了断点,调用也不会转移到B。这是抛出的异常"无法加载文件或程序集"互操作。SHDocVw, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null'或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。(来自HRESULT: 0x80131040"的异常。但同样的代码在其他windows窗体应用程序中也能正常工作。我使用的是VS 2008。从C:'Windows'System32 .

添加对SHDOCVW的引用。
    private void Form1_Load(object sender, EventArgs e)
    {
        OpenBrowser();
    }
    private static void OpenBrowser()
    {
        MyClass.CallBrowser();

    }
     public static class MyClass
    {
    public static void CallBrowser()
    {
        SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorerClass();
        IWebBrowserApp wb = (IWebBrowserApp)ie;
        wb.Visible = true;
        object o = null;
        wb.Navigate("www.google.com", ref o, ref o, ref o, ref o);
    }
    }

定位的程序集的清单定义与程序集引用不匹配.HRESULT: 0x80131040

这不是你问题的确切答案,但我建议使用Windows窗体中已经存在的内置WebBrowser控件。

这会让你的生活轻松很多。它不需要所有的Win32的东西来工作(它在幕后为你)。

在MSDN上的答案中可能有一个解决方案。