繁体   English   中英

查找在Visual Studio运行时在系统上安装的Microsoft Office版本

[英]Finding version of Microsoft Office installed on system at runtime in Visual Studio

通常,我在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中手动更改它。 请查看DebugInfoExeName,我将其从14.0更改为12.0。

 <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版本。

如何检测已安装的MS-Office版本?

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

第二个疯狂的方法如下。

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

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

第一个版本将导致项目文件被更改,Visual Studio将在需要重新加载时提示您,第二个版本将完美构建。

这摆脱了手动过程,但仍然必须更改项目文件(如果您始终一直进行所有更改,则可能会严重破坏svn / git存储库)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM