从Office 2013升级到Office 2016后,未加载Excel VSTO项目

时间:2016-08-30 01:51:56

标签: c# excel visual-studio-2013 vsto office-2016

使用VS 2013(安装了Office 2016)加载项目时出现以下错误

  

无法创建项目,因为与此关联的应用程序   此计算机上未安装项目类型。你必须安装   与此项目关联的Microsoft Office应用程序   类型。

C#项目最初是作为Excel Workbook创建的,使用VS 2013与Office 2013和运行时作为“Visual Studio 2010 Office Runtime工具”。 .Net Framework也没有改变。根据{{​​3}}

,一切看起来都不错

当我查看.csproj文件时,我发现以下对Office Dll的引用,Office版本和ProjectProperties部分指向C:\ Program Files \ Microsoft Office \ Office15 \ Excel.exe,后面不存在升级到Office 2016。

在.csproj文件中手动修复以获取项目的所有内容是什么?

 <ItemGroup>
    <Reference Include="stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
      <Private>False</Private>
    </Reference>
    <Reference Include="Office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">
      <Private>False</Private>
      <EmbedInteropTypes>true</EmbedInteropTypes>
    </Reference>
    <Reference Include="Microsoft.Vbe.Interop, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">
      <Private>False</Private>
      <EmbedInteropTypes>true</EmbedInteropTypes>
    </Reference>
    <Reference Include="Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">
      <Private>False</Private>
      <EmbedInteropTypes>true</EmbedInteropTypes>
    </Reference>
  </ItemGroup>

.....

<ProjectProperties HostName="Workbook.xlsx" HostPackage="{3F2B7691-D1D1-402F-9370-2704A737CF60}" OfficeVersion="15.0" VstxVersion="4.0" ApplicationType="XLS" Language="CS" TemplatesPath="VSTOTemplates" DebugInfoExeName="C:\Program Files\Microsoft Office\Office15\Excel.exe" DebugInfoCommandLine="/x &quot;[$OUTPUT]Workbook.xlsx&quot;" />

1 个答案:

答案 0 :(得分:1)

我在Visual Studio 2015中解决了类似的问题,也许这会有所帮助。

我在Visual Studio外部手动编辑了.csproj文件,用OfficeVersion="15.0"更改了ProjectProperties元素中的属性OfficeVersion="14.0"(是的!降级它!)

然后当我在Visual Studio中打开解决方案时,项目被标记为(需要迁移),然后当我尝试重新加载项目时Visual Studio要求迁移项目然后完成所有工作

N.B。首先确保您能够创建新项目“Excel 2013和2016 VSTO工作簿”,如果不尝试更新Excel并验证是否已启用VSTO加载项