在我的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
}
答案 0 :(得分:1)
问题:您已在本地计算机上使用更高版本的.NET Framework
开发了应用程序,并在具有较低版本.NET Framework
的远程PC上运行该应用程序。
注意:如果您将应用程序定位为Heigher
版本的.NET Framework
,则它将无法在较低版本上运行。
解决方案:您需要将其定位到远程PC上可用的.NET Framework
较低版本,以便在远程PC上运行。
第1步:右键点击project
- 选择properties
第2步:将Target Framework
从.NET Framework x.x
更改为.NET Framework x.y
。
注意:x.x
更高,x.y
是远程PC或更低版本的低版本。