某些系统上的 Excel 互操作 MissingMethodException



在我的C#程序中,我使用的是Microsoft.Office.Interop.Excel。有了这个,我正在读取和写入数据到excel文件。在一台机器上,即使它有Office 2007,也有看到以下异常,在GetComponentPath()方法调用时引发。

未处理的异常:System.MissingMethodException:找不到方法:"System.Type System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.GUID)"。

这是我的代码:

public static string GetComponentPath(OfficeComponent _component)
{
    string toReturn = string.Empty;
    string _key = string.Empty;
    try
    {
        Microsoft.Office.Interop.Excel.Application _excelApp = null;
        _excelApp = new Microsoft.Office.Interop.Excel.Application();
        if (_excelApp != null)
        {
            Console.WriteLine("Excel is installed");
        }
        else
        {
            Console.WriteLine("Excel not found.");
        }               
    }
    catch (Exception ex)
    {
        Console.WriteLine("Error n" + ex.ToString());
    }
    return toReturn;
}
public enum OfficeComponent
{
    Word,
    Excel,
    PowerPoint,
    Outlook
}

问题:您已经在本地机器中使用 heigher 版本的 .NET Framework 开发了您的应用程序,并在具有较低版本的 .NET Framework 的远程 PC 上运行相同的应用程序。

注意:如果您的目标是将应用程序定位为在.NET Framework版本上运行Heigher则它不会在较低版本上运行。

解决方案 :您需要将其定位到远程PC上可用的.NET Framework较低版本才能在远程PC上运行。

步骤1:右键单击project - 选择properties

第 2 步:Target Framework.NET Framework x.x 更改为 .NET Framework x.y

注意:其中x.x是heigh,x.y是远程PC上可用的较低版本或任何较低版本。

相关内容

  • 没有找到相关文章

最新更新