【问题标题】:Can I use VS 2012 to create an Office 2007 add-in?我可以使用 VS 2012 创建 Office 2007 加载项吗?
【发布时间】:2023-03-29 04:43:01
【问题描述】:

这不建议:http://msdn.microsoft.com/en-us/library/ee519072(v=vs.110).aspx

但是,但是……真的

Office 2007 仍然无处不在 - 他们肯定还没有放弃对它的支持吗?我需要支持它,看来这意味着我不能使用VS2012。

或者也许这个限制只适用于 RC? (请)。或者,它创建了针对 2010 年但仍可在 2007 年运行的加载项? (抓着稻草)。

告诉我不是这样...

【问题讨论】:

  • 看起来是这样,但目前这是猜测。

标签: visual-studio vsto visual-studio-2012 office-2007


【解决方案1】:

您可以创建一个Office addin that targets 2010, but that still works in Office 2007。诀窍是您需要了解 2007 年与 2010 年存在哪些互操作类型和事件。如果您尝试访问 2007 年不存在的事件或类成员,您将遇到问题。

Visual Studio 2012 仅包含 Office 2010 项目模板。另一个烦恼/限制是他们取消了对 Setup Projects 的支持,这就是我们发布插件的方式。安装项目已replaced by InstallShield Limited Edition (ISLE)

【讨论】:

  • 谢谢。那么NoPIA的东西怎么样?我认为至少在 2007 年这行不通?看起来我需要坚持使用 VS 2010 :-(
【解决方案2】:

仅供参考,大约在 2013 年 3 月,我刚刚创建了一个针对 Excel 2013 的 Excel 插件,它在 Excel 2007 中运行良好。

我不得不删除/替换对 get_Range 的调用,但这并不奇怪,因为 get_Range 似乎总是有点小题大做。

#if PRE_VSTO_2012
 Excel.Range vsto_range = vsto_sheet.Cells.get_Range( 
  vsto_sheet.Cells[1, 1],
   vsto_sheet.Cells[rowCount, colCount]) as Excel.Range;
#else
   Excel.Range top_left = vsto_sheet.Cells[ 1, 1 ];
    Excel.Range bottom_right = vsto_sheet.Cells[ rowCount, colCount ];
     Excel.Range vsto_range = vsto_sheet.Range[ top_left, bottom_right ];
#endif

我还没有创建 InstallShield LE 包。接下来就是...

【讨论】:

  • “我还没有创建 InstallShield LE 软件包。接下来是……”——你这个可怜的东西。你以为你已经完成了 90%,但实际上 90% 的痛苦和挫折还在后面。祝你好运:-)
  • @GaryMcGill 太对了。与以前可用的安装项目相比,第一次使用 installshield 是一场可怕的噩梦。祝你好运;)
猜你喜欢
  • 2012-08-29
  • 1970-01-01
  • 1970-01-01
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-10
相关资源
最近更新 更多