构建机必须安装Microsoft Office 2007吗?

10

我们的应用程序增加了导入Excel电子表格中某些信息的功能(所有用户都已安装Office 2007)。

开发计算机已安装Office 2007,并且开发人员添加了对Microsoft.Office.Interop.Excel的引用-一切顺利。

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

我确实下载了Office 2007 Primary Interop Assemblies redistributable。但是,在构建计算机上运行该msi时,我得到一个消息框,显示“请先安装Microsoft Office 2007再安装此产品”。

必须在构建计算机上安装Office 2007吗?是否有其他方法可以解决这个问题?


1
您确定 Microsoft.Office.Interop.Excel 已经与源代码一起检入,并且 VS 项目是从源树引用它而不是从 GAC 引用它吗? - Davide Piras
2
@DavidePiras - 那就是答案!一旦我将引用从GAC更改为源树,构建就可以工作了。通过不使用.net选项卡而是浏览并从磁盘中选择文件来引用您的项目。如果您将您的建议添加为答案,我会接受它。谢谢! - Gary Barrett
3个回答

12

请确保将 Microsoft.Office.Interop.Excel 程序集与源代码一起检入,并且VS项目从源代码树引用它而不是从 GAC 引用。

完成后,您无需在构建机器上安装MS Office,但是您需要在应用程序运行时进行安装。


1

只需要求您的开发人员检查所有dll依赖项。这是一个明显的“在我的机器上可以运行”的情况,您需要将开发人员拖到未工作的机器上,并指出他们的文档在“依赖部门”中缺乏。如果您可以访问源代码或可以在程序集上运行ILSpy,则可以自己跟踪此问题。

安装Excel是一个安全的选择,但这是用大锤子解决问题。您的开发人员应该知道真正需要什么.....


-1

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


3
但我不想在构建机上运行我的应用程序 - 我只想构建它? - Gary Barrett
1
不,您不需要安装Excel - 请参见DavidePiras上面的答案。 - Gary Barrett

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接