Excel Excel 2010 和 Excel 2013 Visual Studio 插件
Excel Addin For Excel 2010 & Excel 2013 in Visual Studio
我有一个用 VBA 编写的 Excel 插件,它遍历 sheet 的使用范围并操纵单元格值。它是一个简单的插件,但现在用户需求已经改变,我想在 Visual studio 中用 C# 开发它。为此,我一直在研究 VSTO,但据我所知,在 visual studio 中,您可以为 excel 的单个版本开发插件。我必须支持 excel 2010 和 excel 2013。我应该怎么做才能克服这个问题。我应该使用哪个 visual studio 版本?
您需要为支持 Excel 2013 的 VSTO 版本 13 安装 visual studio 2013,但您可以通过从应用程序创建安装程序文件来支持 excel 2010。并且没有其他方法可以同时支持代码库中的两个不同版本
谢谢
从 2010 年至今的任何 Visual Studio 版本都应该能够为 Excel 2010 创建 VSTO 加载项。从 VS 2012 开始,也适用于 Office 2013。您使用哪一组模板在更高版本中查看取决于 1) 安装的 Office 版本和 2) 创建项目时选择的 .NET Framework 版本(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 没有对您使用的对象模型的部分进行更改,这将 "break" 它。由于 Microsoft 特别注意向后兼容性,这通常不是问题,但彻底的测试很重要。无需重新构建或以其他方式更改安装即可安装到较新版本的 Office。
针对旧版本开发的一个重要原因是不支持向前兼容性。换句话说,如果您应该在较新版本中使用旧版本中不存在的内容,则该代码将失败。
此外,VSTO 功能将自动"re-map" 将对较旧的 PIA 集的引用引用到较新版本的 Office 的较新的 PIA 集。反过来是不是的情况。
如果由于某种原因无法使用旧版本进行编程,只要您拥有 .NET Framework 4.0(或更高版本),您就可以使用参考的 "Embed Interop types" 属性在您的项目中嵌入 PIA 信息,以便它与您的解决方案一起运行,而不是引用安装在 GAC 中的 PIA 和 使它们独立于版本。这在理论上很好,但需要非常彻底和仔细的测试,因为除了向前兼容性问题之外,嵌入的实际信息并不总是正确运行。
我有一个用 VBA 编写的 Excel 插件,它遍历 sheet 的使用范围并操纵单元格值。它是一个简单的插件,但现在用户需求已经改变,我想在 Visual studio 中用 C# 开发它。为此,我一直在研究 VSTO,但据我所知,在 visual studio 中,您可以为 excel 的单个版本开发插件。我必须支持 excel 2010 和 excel 2013。我应该怎么做才能克服这个问题。我应该使用哪个 visual studio 版本?
您需要为支持 Excel 2013 的 VSTO 版本 13 安装 visual studio 2013,但您可以通过从应用程序创建安装程序文件来支持 excel 2010。并且没有其他方法可以同时支持代码库中的两个不同版本
谢谢
从 2010 年至今的任何 Visual Studio 版本都应该能够为 Excel 2010 创建 VSTO 加载项。从 VS 2012 开始,也适用于 Office 2013。您使用哪一组模板在更高版本中查看取决于 1) 安装的 Office 版本和 2) 创建项目时选择的 .NET Framework 版本(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 没有对您使用的对象模型的部分进行更改,这将 "break" 它。由于 Microsoft 特别注意向后兼容性,这通常不是问题,但彻底的测试很重要。无需重新构建或以其他方式更改安装即可安装到较新版本的 Office。
针对旧版本开发的一个重要原因是不支持向前兼容性。换句话说,如果您应该在较新版本中使用旧版本中不存在的内容,则该代码将失败。
此外,VSTO 功能将自动"re-map" 将对较旧的 PIA 集的引用引用到较新版本的 Office 的较新的 PIA 集。反过来是不是的情况。
如果由于某种原因无法使用旧版本进行编程,只要您拥有 .NET Framework 4.0(或更高版本),您就可以使用参考的 "Embed Interop types" 属性在您的项目中嵌入 PIA 信息,以便它与您的解决方案一起运行,而不是引用安装在 GAC 中的 PIA 和 使它们独立于版本。这在理论上很好,但需要非常彻底和仔细的测试,因为除了向前兼容性问题之外,嵌入的实际信息并不总是正确运行。