如何将Wix 3.0项目(使用bootstrapper)移植到Wix 3.7

时间:2013-02-21 10:33:31

标签: wix upgrade wix3 wix3.7

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

在阅读Wix 3.7时,我发现3.7提供项目类型“安装项目” 和项目类型“Bootstrapper项目”。

我的第一个问题是:我是否像以前一样创建一个安装项目和一个bootstrapper项目并将它组合起来或者只是一个bootstrapper项目。

使用Wix 3.0,bootstrapper的东西位于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>

这还有可能吗?在这里,我必须从.Net 3.5SP1更改为.Net 4.5

有人能帮助我吗?

1 个答案:

答案 0 :(得分:2)

首先,您只需使用WiX Toolset 3.7并在WiX文件上运行wixcop进行升级即可升级。


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

您需要两种项目类型。 “安装”项目创建.msi文件。 “Bootstrapper”项目会创建一个.exe文件。

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

对于Microsoft .NET框架,WixNetfxExtension扩展定义了只能reference的包组。