我有一个引用Microsoft.Office.Interop.Excel
我的代码包含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?
答案 0 :(得分:0)
Jason,据我所知,您可以选择安装应用程序所需的版本和Office软件包。
如果您使用的是Visual Studio,则可以转到“应用程序的设置”并插入相关项。
检查这些链接:
答案 1 :(得分:0)
当您的项目在客户端运行时,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。 在没有安装办公室的情况下捕获例外。