如何将WIX3.0项目(带引导程序)移植到WIX3.7

如何将WIX3.0项目(带引导程序)移植到WIX3.7,wix,upgrade,wix3,wix3.7,Wix,Upgrade,Wix3,Wix3.7,我继承了一个使用WIX3.0的安装项目 出于编程原因,我们必须切换到VS2012,因此也必须切换到Wix 3.7 在阅读WIX3.7时,我发现3.7提供了项目类型“setupproject” 和项目类型“引导程序项目” 我的第一个问题是:我必须像以前一样创建一个安装项目和一个引导程序项目,并将其合并,或者只是一个引导程序项目 使用Wix 3.0,引导程序文件位于wixproj文件中: <ItemGroup> <BootstrapperFile Include="Micros

我继承了一个使用WIX3.0的安装项目 出于编程原因,我们必须切换到VS2012,因此也必须切换到Wix 3.7

在阅读WIX3.7时,我发现3.7提供了项目类型“setupproject” 和项目类型“引导程序项目”

我的第一个问题是:我必须像以前一样创建一个安装项目和一个引导程序项目,并将其合并,或者只是一个引导程序项目

使用Wix 3.0,引导程序文件位于wixproj文件中:

<ItemGroup>
  <BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1">
    <ProductName>Microsoft .NET Framework 3.5 SP1</ProductName>
  </BootstrapperFile>
  <BootstrapperFile Include="Microsoft.Windows.Installer.3.1">
    <ProductName>Windows Installer 3.1</ProductName>
  </BootstrapperFile>
</ItemGroup>

<Target Name="AfterBuild">
  <GenerateBootstrapper Condition=" '$(Platform)' == 'x86' " ApplicationName="$(ProductName)" BootstrapperItems="@(BootstrapperFile)" ComponentsLocation="HomeSite" CopyComponents="True" OutputPath="$(TargetDir)%(CultureGroup.OutputFolder)" Culture="%(CultureGroup.Identity)" FallbackCulture="en-us" Path="$(WindowsSDKPath)" />
  <GenerateBootstrapper Condition=" '$(Platform)' == 'x64' " ApplicationName="$(ProductName) (x64)" BootstrapperItems="@(BootstrapperFile)" ComponentsLocation="HomeSite" CopyComponents="True" OutputPath="$(TargetDir)%(CultureGroup.OutputFolder)" Culture="%(CultureGroup.Identity)" FallbackCulture="en-us" Path="$(WindowsSDKPath)" />
</Target>

Microsoft.NET Framework 3.5 SP1
Windows安装程序3.1
这还可能吗?在这里,我必须从.NET3.5SP1更改为.NET4.5


有人能帮我吗?

首先,您可以通过使用WiX Toolset 3.7并在WiX文件上运行wixcop来升级它们


如果您想使用新的WiX引导程序

您需要两种项目类型。“安装”项目创建一个.msi文件。“引导程序”项目创建一个.exe文件

从安装项目中删除Visual Studio引导程序项和GenerateBotstrapper任务。在引导程序的链中创建相应的ExePackage或PackageGroupRef元素。PackageGroup大致相当于VisualStudio引导程序包,但“语法”不同。要重新创建Visual Studio引导程序包,请参阅
C:\Program files(x86)\Microsoft Visual Studio 8\SDK\v2.0\Bootstrapper\Packages
下的文件或等效文件

对于Microsoft.NET framework,WixNetfxExtension扩展定义了您可以直接访问的包组