Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果未安装MS office,则排除office.interop_C#_Winforms_Visual Studio_Office Interop - Fatal编程技术网

C# 如果未安装MS office,则排除office.interop

C# 如果未安装MS office,则排除office.interop,c#,winforms,visual-studio,office-interop,C#,Winforms,Visual Studio,Office Interop,我的问题是,我的程序在运行时被未安装office的计算机打开时崩溃 我正在写一个程序,它将由不同计算机上的多个用户运行。一些用户的计算机将安装MS office,其他用户则不会。这是一个多形式的程序,为了便于参考,可以将其视为类似ERP类型的软件 我已将Microsoft.Office.Interop.Excel和Microsoft.Office.Interop.Outlook包含在程序参考中。我的应用程序中的某些子窗体同时使用excel和outlook功能,但许多子窗体不使用 我希望安装和未安

我的问题是,我的程序在运行时被未安装office的计算机打开时崩溃

我正在写一个程序,它将由不同计算机上的多个用户运行。一些用户的计算机将安装MS office,其他用户则不会。这是一个多形式的程序,为了便于参考,可以将其视为类似ERP类型的软件

我已将Microsoft.Office.Interop.Excel和Microsoft.Office.Interop.Outlook包含在程序参考中。我的应用程序中的某些子窗体同时使用excel和outlook功能,但许多子窗体不使用

我希望安装和未安装office的用户都能够运行该程序。如果他们没有安装office,可能会收到一个错误,说明如果他们单击通常会导出excel数据电子表格的按钮,他们没有安装office

有没有办法做到这一点


我希望避免第三方库,必须在所有计算机上安装office,因为这些工作站上不需要office。我还希望管理一个程序,而不是管理两个单独的程序,这两个程序共享表单和功能。

有上述限制-没有第三方库,某些用户计算机上没有office,程序也没有2个版本//将Excel文件作为数据源读取到程序中,并以这种方式处理数据。对于您提到的导出Excel电子表格的地方,您可以使用ODF/ODS

有上述限制-没有第三方库,某些用户计算机上没有office,程序没有2个版本//将Excel文件作为数据源读取到程序中,并以这种方式处理数据。对于您提到的导出Excel电子表格的地方,您可以使用ODF/ODS

我设置了一个新表单,并测试了应用程序中导致程序崩溃的具体原因。我发现包括办公室参考资料不会引起问题。还使用Microrosoft.Office.Interop.Excel添加;不会引起问题

然而,我在主程序中调用了一个类,该类创建了Excel应用程序、工作簿和工作表,尽管在程序加载时并没有实际使用这些项。类中可能导致问题的局部变量的一个示例是private Excel.Application XLApp=new Excel.Application


在允许用户运行任何可能导致程序崩溃的程序之前,我可能会使用@Jcl建议的解决方案。

我设置了一个新表单,并测试了应用程序中导致程序崩溃的具体原因。我发现包括办公室参考资料不会引起问题。还使用Microrosoft.Office.Interop.Excel添加;不会引起问题

然而,我在主程序中调用了一个类,该类创建了Excel应用程序、工作簿和工作表,尽管在程序加载时并没有实际使用这些项。类中可能导致问题的局部变量的一个示例是private Excel.Application XLApp=new Excel.Application


在允许用户运行任何可能导致程序崩溃的程序之前,我可能会使用@Jcl建议的解决方案。

Self在他们自己的程序集中包含所有调用这两个引用的方法,并在调用这些方法之前检查dll。如果在项目中使用程序集,则可以将“复制本地”属性设置为true,也可以手动将.dll复制到bin文件夹,以便在部署时将其复制。Self在自己的程序集上包含调用这两个引用的所有方法,并在调用这些方法之前检查dll。如果在项目中使用程序集,则可以将“复制本地”属性设置为true,也可以手动将.dll复制到bin文件夹,以便在部署时对其进行复制。。