2012-02-16 51 views
8

我们的应用程序添加了功能,允许用户从Excel电子表格中导入某些信息(所有用户都将拥有Office 2007)。生成机器是否需要安装Microsoft Office 2007?

开发机器有Office 2007,开发人员添加了对Microsoft.Office.Interop.Excel的引用 - 一切都很好。

但是,生成计算机没有安装Office 2007。当生成在生成机器上运行时,我们会收到以下生成错误:“名称空间”Microsoft“中不存在类型或命名空间名称”Office“(您是否缺少程序集引用?)”

I确实下载了Office 2007 Primary Interop Assemblies redistributable。但是当我在生成机器上运行msi时,出现一个消息框,提示“请在安装本产品之前安装Microsoft Office 2007”

是否真的有必要在生成机器上安装Office 2007?有其他解决方法吗?

+1

您确定Microsoft.Office.Interop.Excel已签入源代码,VS项目是从源代码树而不是从GAC引用它? – 2012-02-16 22:22:20

+2

@DavidePiras - 这就是答案!一旦我将GAC的引用更改为源代码树,构建工作。通过不使用.net选项卡引用项目中的文件,但浏览并从磁盘中选择它们。如果你添加你的建议作为答案,我会接受它。谢谢! – 2012-02-17 11:35:46

回答

11

确保Microsoft.Office.Interop.Excel组件签入的源代码和项目VS从源代码树中引用它,而不是从GAC

完成之后,当然你不需要在生成机器上安装MS Office,但是你需要它来让应用程序运行。

-1

是的,您必须在要运行应用程序的所有机器上安装Excel。

+2

但我不想在构建机器上运行我的应用程序 - 我只想构建它? – 2012-02-17 01:50:40

+1

不,您不必安装Excel - 请参阅上面的DavidePiras答案 – 2012-02-17 11:37:07

1

只要问问你的开发人员检查所有的dll依赖关系。这是一个明确的例子,“它适用于我的机器”,您需要将开发人员拖到不工作的机器上,并指出他们的文档在“依赖部门”中缺少。如果您有权访问源代码或者可以在程序集上运行ILSpy,那么您可以随意跟踪这些内容。

安全的是,你只需安装Excel,但这是用大锤击中问题。你的开发者应该知道什么是真正需要的.....

相关问题