繁体   English   中英

在Wix安装程序上添加.Net Framework会复制安装程序

[英]Adding .Net Framework on Wix installer duplicates installer

我正在部署一个简单的.MSI安装程序。 但是,作为测试,我想把Microsoft .Net Framework 4.0作为先决条件,所以我在我的.wixproj上写了这个:

  <ItemGroup>
      <BootstrapperFile Include=".NETFramework,Version=v4.0">
         <ProductName>.NET Framework 4.0</ProductName>
      </BootstrapperFile>
      <Bootstra pperFile Include="Microsoft.Windows.Installer.4.5">
         <ProductName>Windows Installer 4.5</ProductName>
      </BootstrapperFile>
  </ItemGroup>

和:

<Target Name="AfterBuild">
    <GenerateBootstrapper ApplicationFile="InstallTest" ApplicationName="Face Phi Install Test" BootstrapperItems="@(BootstrapperFile)" ComponentsLocation="Relative" CopyComponents="True" OutputPath="$(OutputPath)" Path="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\" />
</Target>

在我的.wxs项目中,我写了这个:

<PropertyRef Id="NETFRAMEWORK40FULL"/>

这工作正常,我可以将.Net Framework 4.0作为先决条件,并且不允许继续安装。 但是当我生成SetupProject ,我可以看到两个安装程序:

在此输入图像描述

  1. InstallTest.msi是我在.wxs项目中生成的。 第二个,我不知道它来自哪里。 如何只有一个安装程序并将其连接到我的先决条件?
  2. 如何自动安装.Net Framework,而不是取消安装?

setup.exeGenerateBootstrapper构建任务创建,包含安装BootstrapperFile元素选择的软件包的逻辑。 但是,这不包括InstallTest.msi。

为此,您需要创建一个bootstrapper包,它是一个包含msi文件和几个xml文件的目录结构。 例如,查看C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\Bootstrapper\\Packages 您可以手动设计并使用构建任务将其复制到Packages文件夹中。 Microsoft的非正式工具Bootstrapper Manifest Generator在设计和复制包时也有帮助,可以从构建任务中调用。

一旦安装了安装所有软件包的setup.exe,您可能希望将所有文件放入自解压存档(如WinRAR或WinZip)中。 我使用非常基本的NSIS安装程序,因为它允许我创建一个专业的自定义欢迎屏幕。

替代

而不是Visual Studio引导程序,升级到WiX 3.7并使用WiX Bootstrapper项目(又名Burn项目)。 缺点是在其系统下安装依赖项的脚本尚未广泛使用,尽管文档中包含.NET脚本。 [请参阅“如何:使用刻录安装.NET Framework”主题。] Burn的众多优点之一是它也是一个自解压存档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM