分发需要Microsoft.Office.Interop.Excel的应用程序

时间:2015-12-30 21:24:21

标签: c# office-interop

我有一个引用Microsoft.Office.Interop.Excel

的c#(VS 2015)应用程序

我的代码包含oXL = new Microsoft.Office.Interop.Excel.Application();以及上述参考资料。

如果我在已经同时拥有Office 2013和.Net 4.0的计算机上编译和安装该应用程序,但是当我搜索该计算机时,我无法在任何地方找到Microsoft.Office.Interop.Excel.dll,我认为这是我需要的。

我看到here

  

默认情况下,PIA会在您构建解决方案时嵌入到您的解决方案中,因此您不必将PIA分发给用户,这是使用VSTO加载项或自定义的先决条件。

当我构建我的应用程序时,我的Release文件夹中没有包含Microsoft.Office.Interop.Excel.dll(就像我使用其他引用的.dll一样)。

我是否需要手动添加或者是安装此功能的唯一方法是安装Microsoft的Office主互操作程序集Redistributable?

4 个答案:

答案 0 :(得分:0)

Jason,据我所知,您可以选择安装应用程序所需的版本和Office软件包。

如果您使用的是Visual Studio,则可以转到“应用程序的设置”并插入相关项。

检查这些链接:

Deployment and Dependencies

How to: Create and Remove Project Dependencies

答案 1 :(得分:0)

杰森,你还要参考MICROSOFT OFFICE XX.X OBJECT LIBRARY。 XX.X是你在那里发布的。

当您的项目在客户端运行时,VS将在GAC_MSIL中查看他/她是否有Office。

不要尝试添加EXCEL库,因为它不起作用。您的用户必须拥有运行代码的Office。

答案 2 :(得分:0)

转到引用的属性并将copylocal设置为true。 Interop libs默认将它们设置为false。

这将在您构建项目时复制DLL。

  

复制本地属性(对应于CopyLocal)确定   是否将引用复制到本地bin路径。

     

在运行时,a   引用必须位于全局程序集缓存(GAC)或   项目的输出路径。如果此属性设置为true,则   在运行时将引用复制到项目的输出路径。

如需更深入地了解本地副本,请参阅msdn

答案 3 :(得分:0)

.NET应用程序将在全局程序集中查找dll并绑定到动态的任何合适的dll。

DLL =动态链接库

对于不同版本的办公室和不同平台(32位与64位)有不同的dll。 简而言之,请勿在包中包含dll。 在没有安装办公室的情况下捕获例外。