簡體   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