【发布时间】:2014-02-27 12:41:28
【问题描述】:
以下是我用于 WiX 引导程序安装程序的以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Bundle Name='My Application Version 3.5' Version='3.5.0' Manufacturer='Company' UpgradeCode='{49DF3192-2631-4636-9279-E4F913077C57}'>
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
<Chain>
<PackageGroupRef Id="Netfx4Full"/>
<MsiPackage SourceFile="MyApplicationToInstall.msi" Compressed="no"/>
</Chain>
</Bundle>
<Fragment>
<!--check for .NET 4.0-->
<util:RegistrySearch
Root="HKLM"
Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full"
Value="Version" Variable="Netfx40FullVersion"/>
<util:RegistrySearch
Root="HKLM"
Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full"
Value="Version"
Variable="Netfx40x64FullVersion"
Win64="yes"/>
<PackageGroup Id="Netfx4Full">
<ExePackage Id="Netfx4Full"
DisplayName="Microsoft .NET Framework 4.0"
DownloadUrl="http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe"
Compressed="no"
Cache="no"
PerMachine="yes"
Permanent="yes"
Vital="yes"
Protocol="netfx4"
SourceFile=".\dotNetFx40_Full_x86_x64.exe"
InstallCommand="/passive /norestart"
DetectCondition="Netfx40FullVersion AND (NOT VersionNT64 OR Netfx40x64FullVersion)" />
</PackageGroup>
</Fragment>
</Wix>
由于某种原因,.NET 4 的先决条件导致 3 MB 的应用程序增加到 99 MB 的文件大小。当我删除先决条件时,它下降到它应该是 (3 MB) 的大小。经过一番研究,我将缓存从“是”更改为“否”,将其从 99 MB 减少到 50 MB。
我对 WiX 比较陌生,所以我缺少什么?我是否写错了先决条件?
编辑:原始程序是使用 VS2010 的安装程序模板(现已停产)安装的,该模板在运行时使用与我编写的 WiX 替代方案相同的先决条件安装了该程序,但是该安装的结果安装了 3 MB程序和 .NET 作为独立的实体。
【问题讨论】:
-
如果您的包安装了 .NET Framework(如果未安装),我认为增加包大小没有任何问题。框架还会从哪里安装?
-
但是为什么会影响已安装程序的大小呢? .NET 是一个单独的实体,仅需要该程序才能运行。我安装的程序不应该在控制面板中显示为 50 MB 的程序,而实际上程序本身只有 3 MB。
-
这取决于你看待它的方式。您的安装程序安装了 99MB。它的一部分可能是 .NET 框架,但仍然是这个安装程序安装了它,所以它确实是你安装的大小。如果用户删除它,这就是将被释放的空间,对吧?您可以对其他人需要 .NET4 时发生的情况进行测试并安装它。
-
这让我感到困惑的原因(我可能应该在问题中添加这个但忘记了)是原始应用程序是通过 VS2010 的安装程序模板安装的,并且程序的原始大小安装的大小是 3 MB,这表明我使用 WiX 安装程序设置了一些错误。
标签: .net wix windows-installer