【问题标题】:Finding version of Microsoft Office installed on system at runtime in Visual Studio在 Visual Studio 运行时查找系统上安装的 Microsoft Office 版本
【发布时间】:2013-12-11 09:49:39
【问题描述】:

我一般需要一些有关 Visual Studio 中 Microsoft Office 模板的帮助。

我的问题是我正在开发兼容的 Visual Studio 2012,或者说包含 Microsoft Office 2010 的模板。我想知道有没有办法在运行时找出系统上安装了哪个版本的 MS Office 并构建相应地。这意味着我想摆脱手动更改 .csproj 文件版本 14.0 到 12.0 的情况,以防我在 Visual Studio 2012 中开发 MS Office 2007 解决方案。类似地,如果我在我的电脑上安装了 MS Office 2012,它将对我有所帮助机器,我仍然可以使用 Visual Studio 说 2012 或 2013 来使用它。

我需要在csproj中手动更改它。请查看我将其从 14.0 更改为 12.0 的 DebugInfoExeName。

 <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{BAA0C2D2-18E2-41B9-852F-F413020CAA33}">
        <ProjectProperties HostName="Excel" HostPackage="{20A848B8-E01F-4801-962E-25DB0FF57389}" OfficeVersion="14.0" VstxVersion="4.0" ApplicationType="Excel" Language="cs" TemplatesPath="" DebugInfoExeName="#Software\Microsoft\Office\***12.0***\Excel\InstallRoot\Path#excel.exe" AddItemTemplatesGuid="{51063C3A-E220-4D12-8922-BDA915ACD783}" />
        <Host Name="Excel" GeneratedCodeNamespace="SiraExcelAddIn" 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>

我想摆脱这个窗口,但不是手动的。

【问题讨论】:

  • 这里的重点不是我无法在我的系统上安装 Office 版本。关键是如何在 Visual Studio 特别是 Excel 项目中构建项目时合并相同的内容。我希望现在很清楚。

标签: c# .net visual-studio-2010 visual-studio-2012 build-process


【解决方案1】:

第一个选项,维护两个不同的 .proj 和 .sln 文件(一个用于版本 12,一个用于 14)。

第二种疯狂的kludge方法如下。

将依赖的控制台应用程序项目添加到解决方案,然后将构建后事件添加到该项目并使其“始终”运行,在该构建后事件中执行控制台应用程序。

在控制台应用程序中包含用于检查是否安装了最高版本的 Office 并根据需要更新项目 .proj 文件的代码(仅在有更改时更新,如果没有更改则不要更新)。

第一次构建将导致项目文件发生更改,Visual Studio 会提示需要重新加载,第二次构建将完全正常。

这摆脱了手动过程,但仍然需要更改项目文件(如果您一直提交所有更改,这可能会对您的 svn/git 存储库造成严重破坏)。

您的另一个选择是尝试安装office 14 primary interop assemblies,看看是否可以让您在不安装版本 14 的情况下进行构建。

【讨论】:

    【解决方案2】:

    查看此问题以确定安装了哪些版本的 office

    How to detect installed version of MS-Office?

    【讨论】:

    • 请查看我上面的评论。谢谢。
    猜你喜欢
    • 2014-07-17
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多