Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 WiX安装程序-如何确定已在Visual Studio 2012中安装NuGet软件包管理器?_Visual Studio 2012_Wix_Nuget - Fatal编程技术网

Visual studio 2012 WiX安装程序-如何确定已在Visual Studio 2012中安装NuGet软件包管理器?

Visual studio 2012 WiX安装程序-如何确定已在Visual Studio 2012中安装NuGet软件包管理器?,visual-studio-2012,wix,nuget,Visual Studio 2012,Wix,Nuget,我有一个基于WiX技术的自定义安装程序,它将三个.vsix包安装到Visual Studio 2012/2013中。其中一个软件包是PostSharp,它需要已经安装在Visual Studio中的NuGet软件包管理器。问题是VisualStudio2013默认有NuGet包管理器,而VisualStudio2012没有 因此,我需要检测Visual Studio中是否已经安装了NuGet Package Manager,如果没有,请在我的自定义安装程序中安装此包(.vsix) 在WiX中可能

我有一个基于WiX技术的自定义安装程序,它将三个.vsix包安装到Visual Studio 2012/2013中。其中一个软件包是PostSharp,它需要已经安装在Visual Studio中的NuGet软件包管理器。问题是VisualStudio2013默认有NuGet包管理器,而VisualStudio2012没有

因此,我需要检测Visual Studio中是否已经安装了NuGet Package Manager,如果没有,请在我的自定义安装程序中安装此包(.vsix)

在WiX中可能吗?

是的,下载,并在您的WiX项目中引用:

<Component Id="VSPackageComponent" Guid="E54DBAAF-4961-492C-AA8A-FFE3C4C77BA3">
      <VSExtension:VsixPackage File="VsPackageInstaller"
                               TargetVersion="11.0" <!-- VS2012 -->
                               PackageId="8cc311e8-5f48-4816-b1ee-6c873fe0dc71"
                               Vital="yes" Permanent="no" />
      <File Id="VsPackageInstaller" Name="NugetPackageManager.vsix"
                                    Source="NugetPackageManager.vsix"/>
</Component>

就检测而言,我相信这种方法会自动发生。试一试,然后返回报告:-)

我的直觉是不将其编写到安装程序中,而是将其作为prereq可再发行文件编写到引导程序中。@ChristopherPaint:这是可以做到的,但我认为这将涉及到查找
NugetPackageManager
的实际.msi/.exe版本(不确定这项任务有多难)。如果它是*.exe,您还需要创建某种“是否已安装nuget package manager”条件。@ChrisEelmaa:是的,它可以工作,但有一些小的更改:首先-我们需要包含Target=“integratedShell”属性,因为如果指定了TargetVersion属性,则它是必需的(我特别没有使用特定版本的Visual Studio,因为我们的客户可以使用专业版或高级版)。第二,如果客户的计算机上已经安装了NugetPackageManager,我使用Vital=“no”属性继续安装过程。
xmlns:VSExtension="http://schemas.microsoft.com/wix/VSExtension"