为什么VSTO Add-in项目需要迁移?
Why does VSTO Add-in project need migration?
我正在使用 Visual Studio 2015。我的计算机上安装了 Office 2003 和 2010。
我创建了一个 Word 2010 VSTO 加载项。我尝试在 Word 2010 上构建它并进行调试,它工作正常。
然后我关闭了 Visual Studio,然后再打开它并用我的 VSTO 项目打开了一个解决方案 - 但如果没有单向升级我就无法打开它。需要迁移。
如果我同意单向升级,我的项目构建正常,但我无法调试:
You cannot debug or run this project, becuase the required version of the Microsoft Office application is not installed
在 csproj 文件中我可以看到它确实需要错误版本的 Office(Office 2010 的 OfficeVersion 应该是 14.0):
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{BAA0C2D2-18E2-41B9-852F-F413020CAA33}">
<ProjectProperties HostName="Word" HostPackage="{29A7B9D7-A7F1-4328-8EF0-6B2D1A56B2C1}" OfficeVersion="15.0" VstxVersion="4.0" ApplicationType="Word" Language="cs" TemplatesPath="VSTOTemplates" DebugInfoExeName="#Software\Microsoft\Office.0\Word\InstallRoot\Path#WINWORD.EXE" DebugInfoCommandLine="/w" AddItemTemplatesGuid="{51063C3A-E220-4D12-8922-BDA915ACD783}" />
<Host Name="Word" GeneratedCodeNamespace="WKP_EditorTools" IconIndex="0">
<HostItem Name="ThisAddIn" Code="ThisAddIn.cs" CanonicalName="AddIn" CanActivate="false" IconIndex="1" Blueprint="ThisAddIn.Designer.xml" GeneratedCode="ThisAddIn.Designer.cs" />
</Host>
</FlavorProperties>
</VisualStudio>
但是我改成14.0再打开,又需要迁移!
这是怎么回事?我应该降级到 Visual Studio 2010...吗?
一般来说 Visual Studio Visual Studio 中的 Office 系统模板 (VSTO) 工具仅支持 Visual Studio 发布时的最后两个当前版本的 office。
Visual Studio 2010:Office 2007 ("Office 12")、Office 2010 ("Office 14")、Visual Studio 2012:Office 2010、Office 2013 ("Office 15" ), Visual Studio 2013: Office 2010, Office 2013. Visual Studio 2015目前在Office 2013和Office 2016.
但是您不需要降级到 Visual Studio 2010,您可以并排安装 Visual Studio 的版本。我在一台机器上安装了 Visual Studio 2010、2012、2013 和 2015。
请注意,可以手动将您的 Office PIA 引用更改为更高版本的 Office,但由于您没有升级项目中的 VSTO 管道,模板设计的 VSTO 版本与 Office 之间将不匹配你的目标版本。这可能会在以后破坏您的项目。
如果您不想使用 VSTO 工具,建议避免使用 VSTO 模板,只需从一个空白项目开始,然后添加对您要在应用程序中处理的 Office 的引用。通过这样做,您可以随时将引用切换到其他 Office 版本,如果您想要定位不同的版本。
无需再安装 Visual Studio。我个人为 Office 2007、2010 和 2013(现在是 2016)制作 add-ins,使用 2010 到 2015 的任何版本的 VS。你只需要稍微设置一下你的项目。属性 OfficeVersion="15.0" 对您没有太大影响(实际上,我不确定它是否有任何改变),但属性
DebugInfoExeName="#Software\Microsoft\Office\15.0\Word\InstallRoot\Path#WINWORD.EXE
定义您正在使用哪个版本的 Word 进行调试。您可以将路径更改为所需的路径。
如果你以后要安装更多版本的MS Office(我相信你需要,因为你还可以测试兼容性),你可以通过设置
轻松切换Office的起始版本
the project properties -> Debug -> Start external program - C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE (or another valid path)
此外,您的项目有一些互操作参考。使用哪个版本没有太大区别,它们具有几乎相同的功能,但我建议使用您拥有的最新版本(我认为 Visual Studio 在您选择一种升级方式时已经升级了)。
所以,毕竟您只有两个版本的 Office 的模板,但您可以根据需要设置它们。
我正在使用 Visual Studio 2015。我的计算机上安装了 Office 2003 和 2010。
我创建了一个 Word 2010 VSTO 加载项。我尝试在 Word 2010 上构建它并进行调试,它工作正常。
然后我关闭了 Visual Studio,然后再打开它并用我的 VSTO 项目打开了一个解决方案 - 但如果没有单向升级我就无法打开它。需要迁移。
如果我同意单向升级,我的项目构建正常,但我无法调试:
You cannot debug or run this project, becuase the required version of the Microsoft Office application is not installed
在 csproj 文件中我可以看到它确实需要错误版本的 Office(Office 2010 的 OfficeVersion 应该是 14.0):
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{BAA0C2D2-18E2-41B9-852F-F413020CAA33}">
<ProjectProperties HostName="Word" HostPackage="{29A7B9D7-A7F1-4328-8EF0-6B2D1A56B2C1}" OfficeVersion="15.0" VstxVersion="4.0" ApplicationType="Word" Language="cs" TemplatesPath="VSTOTemplates" DebugInfoExeName="#Software\Microsoft\Office.0\Word\InstallRoot\Path#WINWORD.EXE" DebugInfoCommandLine="/w" AddItemTemplatesGuid="{51063C3A-E220-4D12-8922-BDA915ACD783}" />
<Host Name="Word" GeneratedCodeNamespace="WKP_EditorTools" IconIndex="0">
<HostItem Name="ThisAddIn" Code="ThisAddIn.cs" CanonicalName="AddIn" CanActivate="false" IconIndex="1" Blueprint="ThisAddIn.Designer.xml" GeneratedCode="ThisAddIn.Designer.cs" />
</Host>
</FlavorProperties>
</VisualStudio>
但是我改成14.0再打开,又需要迁移!
这是怎么回事?我应该降级到 Visual Studio 2010...吗?
一般来说 Visual Studio Visual Studio 中的 Office 系统模板 (VSTO) 工具仅支持 Visual Studio 发布时的最后两个当前版本的 office。
Visual Studio 2010:Office 2007 ("Office 12")、Office 2010 ("Office 14")、Visual Studio 2012:Office 2010、Office 2013 ("Office 15" ), Visual Studio 2013: Office 2010, Office 2013. Visual Studio 2015目前在Office 2013和Office 2016.
但是您不需要降级到 Visual Studio 2010,您可以并排安装 Visual Studio 的版本。我在一台机器上安装了 Visual Studio 2010、2012、2013 和 2015。
请注意,可以手动将您的 Office PIA 引用更改为更高版本的 Office,但由于您没有升级项目中的 VSTO 管道,模板设计的 VSTO 版本与 Office 之间将不匹配你的目标版本。这可能会在以后破坏您的项目。
如果您不想使用 VSTO 工具,建议避免使用 VSTO 模板,只需从一个空白项目开始,然后添加对您要在应用程序中处理的 Office 的引用。通过这样做,您可以随时将引用切换到其他 Office 版本,如果您想要定位不同的版本。
无需再安装 Visual Studio。我个人为 Office 2007、2010 和 2013(现在是 2016)制作 add-ins,使用 2010 到 2015 的任何版本的 VS。你只需要稍微设置一下你的项目。属性 OfficeVersion="15.0" 对您没有太大影响(实际上,我不确定它是否有任何改变),但属性
DebugInfoExeName="#Software\Microsoft\Office\15.0\Word\InstallRoot\Path#WINWORD.EXE
定义您正在使用哪个版本的 Word 进行调试。您可以将路径更改为所需的路径。
如果你以后要安装更多版本的MS Office(我相信你需要,因为你还可以测试兼容性),你可以通过设置
轻松切换Office的起始版本the project properties -> Debug -> Start external program - C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE (or another valid path)
此外,您的项目有一些互操作参考。使用哪个版本没有太大区别,它们具有几乎相同的功能,但我建议使用您拥有的最新版本(我认为 Visual Studio 在您选择一种升级方式时已经升级了)。
所以,毕竟您只有两个版本的 Office 的模板,但您可以根据需要设置它们。