我可以使用VS 2012创建Office 2007加载项吗?

时间:2012-07-22 21:45:42

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

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

但是,但是...... 真的

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

或许这个限制只适用于RC? (请)。或者它可能会创建2010年定位但仍可以在2007年运行的加载项? (抓着稻草)。

告诉我事实并非如此......

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

仅供参考,大约在2013年3月,我刚刚创建了一个针对Excel 2013的Excel Addin,它在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包。那是下一个......