我有一个用VBA编写的Excel加载项,它遍历工作表的使用范围并操作单元格值。它是一个简单的加载项,但现在用户需求已经发生了变化,我想在Visual中的C#中开发它。为此,我研究了VSTO,但据我所知,在visual中,您可以为excel的单个版本开发外接程序。我必须支持excel 2010和excel 2013。我该怎么做才能解决这个问题。我应该使用哪个视频演播室版本?
发布于 2016-05-03 15:42:54
从2010年到现在的任何版本的Visual都应该能够为Excel 2010创建VSTO外接程序。从VS 2012年起,也适用于2013年办公室。您在后期版本中看到的模板集取决于1) Office安装的版本,2)在创建项目时选择的.NET框架版本(2010年为4.0,以后为4.5 )。更多信息可在以下页面找到:https://blogs.msdn.microsoft.com/vsto/2013/03/06/office-developer-tools-for-visual-studio-2012-now-available-with-office-2013-and-net-framework-4-5-support/
请注意,开发环境中只应安装一个Office版本。
如果可能,您应该为Excel 2010开发外接程序。为旧版本开发的外接程序将运行于较新的版本,而不需要做任何附加操作--假设Microsoft没有对您使用的对象模型中“破坏”它的部分进行更改。因为微软特别注意向后兼容性,所以这通常不是问题,但是彻底的测试是很重要的。没有必要重新构建或以其他方式将安装更改为较新版本的Office。
针对旧版本开发的一个重要原因是不支持转发兼容性。换句话说,如果您应该使用旧版本中不存在的更新版本中的某些内容,则该代码将失败。
此外,VSTO功能将自动“重新映射”对旧的PIA集的引用,以更新Office版本的PIA。相反的情况并非如此。
如果由于某种原因无法使用旧版本进行编程,只要您拥有.NET Framework4.0(或更高版本),就可以使用引用的“”属性将PIA信息嵌入到项目中,这样它就可以随您的解决方案一起运行,而不是引用安装在GAC中的PIA,并使它们独立于版本。这在理论上是很好的,但需要非常彻底和仔细的测试,因为除了前向兼容性问题之外,实际嵌入的信息并不总是正确的。
发布于 2016-05-03 10:03:33
您需要为支持Excel 2013的VSTO版本13安装visual studio 2013,但可以通过从应用程序创建安装程序文件来支持excel 2010。并且没有其他方法可以同时支持代码库中的两个不同版本。
谢谢
https://stackoverflow.com/questions/37000672
复制相似问题