[英]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
,我可以看到两个安装程序:
InstallTest.msi
是我在.wxs
项目中生成的。 第二个,我不知道它来自哪里。 如何只有一个安装程序并将其连接到我的先决条件? setup.exe
由GenerateBootstrapper
构建任务创建,包含安装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.