1

我通常需要一些有关Visual Studio中的Microsoft Office模板的帮助。在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安装在我的机器,我仍然可以使用视觉工作室说,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> 

我想摆脱这个窗口,但不是手动。 enter image description here

+0

可能重复[如何检测安装的MS-Office版本?](http://stackoverflow.com/questions/3266675/how-to-detect-installed-version-of-ms-office) – Carsten

+0

重点这并不是说我无法获得我的系统上安装的Office版本。关键是如何在Visual Studio特别是Excel Project中构建项目的同时加入相同的功能。我希望现在很清楚。 –

回答

0

首先选择哪个版本(S),维持两个不同.proj和的.sln文件(一个为12版,一个用于14)。

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

依赖控制台应用程序项目添加到解决方案,然后生成后事件添加到该项目,并使其运行“总是”,在生成后事件执行控制台应用程序。

在控制台应用程序包括代码检查,如果需要,它安装并更新项目.proj文件办公室的最高版本(仅当有变化更新,如果没有变化不更新)。

首先构建将导致项目文件被更改和Visual Studio提示,因为它需要重新加载,第二内建将建立完美的罚款。

这摆脱了手工工艺,但它仍然有可能改变项目文件(这可能会导致你的svn/git仓库的破坏,如果你只是提交所有更改所有的时间)。

你的另一种选择是尝试安装office 14 primary interop assemblies,看看是否可以让您建立,而无需安装版本14。

相关问题