10

我目前正在开发一个 Excel 2010 加载项,该加载项以前是 Excel 2007 加载项。在切换计算机的过程中的某个地方,我认为加载项被转换了。

我的一些客户表示该加载项不再适用于 Excel 2007,因此我尝试在安装了 Excel 2007 和 Visual Studio 2010 的 VirtualBox 中对其进行调试。

现在我收到错误消息:

您无法调试或运行此项目,因为未安装所需版本的 Microsft Office 应用程序。

我开始了一个新的 Excel 2007 插件项目,并试图找出其中的差异,并想出它与 dll 有一些关系的想法,所以我更改了我的 2010 插件,直到它看起来像 2007 插件。

我仍然收到错误消息,指出我的项目无法调试。

有什么我可能忘记改变的。

不幸的是,编写一个全新的插件不是一种选择。

到目前为止,这些问题对我没有帮助:

  1. 适用于 Excel 2007 和 2010 的 Excel 插件
  2. 部署 Office 2010 插件
4

2 回答 2

8

要让VS 2010Office 2007一起使用,请修改项目文件 ( .csproj ),使其在 Office 2007 中打开,并且在运行时不查找 Office 2010(因此出现上面的错误消息)。

这是项目设置更改(Excel 示例):

源 XPath:

//项目/ProjectExtensions/VisualStudio/FlavorProperties/ProjectProperties/@DebugInfoExeName

旧值(Office 2010):

DebugInfoExeName="#Software\Microsoft\Office\14.0\Excel\InstallRoot\Path#excel.exe"

新价值(Office 2007):

DebugInfoExeName="#Software\Microsoft\Office\12.0\Excel\InstallRoot \Path#excel.exe"

更改此项目设置后,当您启动调试器 ( F5) 时,它将加载 Excel 2007 应用程序,而不是查找 Excel 2010。

于 2012-09-25T14:10:17.120 回答
6

通常,当我使用 VSTO 加载项针对多个版本的 Office 进行开发时,我针对每个目标 Office 版本都有一个项目。我将项目之间的所有公共代码放入一个项目(通常是最旧的项目)并使用链接文件,我将公共文件添加到较新的项目中。这使我可以编写一组通用核心代码,从每个 Office 版本的要求中抽象出来。这意味着我不再与为每个版本的 Office 编译 VSTO 的不同方式作斗争。这可以通过共享文件夹和虚拟机变得更容易,因此我可以在没有多台计算机的情况下进行开发和测试。这绝不是优雅的,但对我来说效果很好。这应该允许您针对 Office 2007 和 Office 2010 开发 VSTO 加载项,而不会出现太多问题。

于 2012-09-25T14:40:39.367 回答