由于未安装所需版本的 Microsoft Office,无法调试或运行 Word AddIn

44

我需要处理一个现有的Word 2007插件项目,该项目是MSVS 2008解决方案的一部分。然而,当我尝试调试插件时,会出现以下错误信息:“您不能调试或运行此项目,因为未安装所需版本的Microsoft Office应用程序”。我已经安装了Office 2007。

我尝试在同一解决方案中创建一个新的Word 2007插件项目,并且没有问题可以调试它。据我所知,这两个项目之间所有引用的Office程序集都是相同的。

引用的Office程序集:

Microsoft.Office.Interop.Word (c:\Program Files (x86)\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office12\Microsoft.Office.Interop.Word.dll)

Microsoft.Office.Tools.Common.v9.0 (c:\Program Files (x86)\Reference Assemblies\Microsoft\VSTO\v9.0\Microsoft.Office.Tools.Common.v9.0.dll)

Microsoft.Office.Tools.v9.0 (c:\Program Files (x86)\Reference Assemblies\Microsoft\VSTO\v9.0\Microsoft.Office.Tools.v9.0.dll)

Microsoft.Office.Tools.Word.v9.0 (c:\Program Files (x86)\Reference Assemblies\Microsoft\VSTO\v9.0\Microsoft.Office.Tools.Word.v9.0.dll)

Office (c:\Program Files (x86)\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office12\Office.dll)

stdole c:\Program Files (x86)\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office11\stdole.dll

我尝试重新构建,在Debug和Release配置下启动调试。但都没有帮助。还有什么其他问题可能导致无法调试旧项目?

3个回答

75

明显地,当addin项目被创建时,调试信息,例如MS Office版本和用于调试的可执行路径,会保存在.CSPROJ文件中。

因此调试不能保证在另一台机器上工作。

这些信息保存在项目文件的以下XML节点中:

ProjectExtensions \ VisualStudio \ FlavorProperties \ ProjectProperties

在我的情况下,问题出现在以下属性中

  • OfficeVersion="14.0"
  • DebugInfoExeName="#Software\Microsoft\Office\14.0\Word\InstallRoot\Path#WINWORD.EXE"

将它们的值中的14.0更改为12.0(从2010到2007)解决了我的问题。

参考这些问题:


2
当我换到新的开发机器时,正是我的问题。我用记事本打开了.csproj文件,将15更改为14(从Office 365更改为Office 2010)。 - Watson
难以置信,它起作用了。我在一台机器上使用Outlook 2010,在另一台机器上使用2013(将版本14.0更改为15.0)。谢谢。 - anhoppe
也适用于我,将“14.0”替换为“15.0”,完美运行。 - mzi
在VS2013中,将OfficeVersion更改为12以适用于Office 2007并不起作用(VS反复要求升级项目文件)。仅更改DebugInfoExeName属性即可解决问题。 - personne3000
将Office 2013升级到2016,版本号从15变为16。 - Marcos Brigante
显示剩余3条评论

39

为了让搜索者受益,我在Visual Studio中遇到了这个错误,尽管引用了@sdds提到的部分中正确的版本。

对于我来说,修复方法是:

  1. 进入Visual Studio中的项目属性
  2. 进入“调试”选项卡
  3. 单击“启动外部程序”单选按钮
  4. 输入Office应用程序路径,例如C:\Program Files\Microsoft Office 15\root\office15\winword.exe
  5. 运行该项目。

我在刷新项目树后,遇到了一个看似无法构建的项目。原来它已经破损了很长时间,但是因为我需要向Word传递命令行参数,所以在Debug选项卡中一直有明确的EXE文件。这些参数存储在*.csproj.user文件中,而我没有将.user文件保存在代码库中。 - Wade Hatler
这是我在使用Excel 2016/2013之间切换时需要的修复方法。 - punkouter
修复我从2013到2016的问题,与@punkouter相同。 - interesting-name-here
1
或者 C:\Program Files (x86)\Microsoft Office 2013\Office15\winword.exe - kmote
对我有用。插件是使用Office Outlook 2016开发/测试的,而我正在运行Office Outlook 2013。只需更改外部程序指向我的C:\Program Files\Microsoft Office\Office15\OUTLOOK.exe即可。 - broadband
在我看来,这是正确的答案。您不应该去.csproj(或VB的.vbproj文件),而应该能够使用GUI。 - ptownbro

-1

我遇到了同样的问题,我改变了officeversion属性,但我不得不安装office 2010与当前安装的office 2013一起使用


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