WIX: 生成启动程序条件?

3
我使用WIX构建了安装程序,并使用GenerateBootstrapper任务将其与.NET 4.0框架打包。现在,.NET 4.0无法安装在XP SP2上,但它似乎没有为此进行先决条件检查,因此其安装程序会在中途失败。
我想添加自己的检查,以确保整个软件包要安装的操作系统受到.NET 4.0框架的支持。当您使用GenerateBootstrapper时,是否有一种方法可以嵌入操作系统/服务包检查到启动程序中?如果没有,我该如何完成这项任务?

你确定.NET 4.0框架不能安装在Windows XP SP2上吗?引导程序描述明确禁止安装,只有当服务包级别低于SP2时(当然,微软已经不再为XP SP2提供官方支持,但这是另一回事)。 - Dirk Vollmar
有趣。我想知道为什么安装.NET 4.0失败了。微软在框架下载要求中提到了SP3。http://www.microsoft.com/downloads/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=en - roufamatic
我之前见过微软提供的引导程序包定义没有正确地进行检查。 - Dirk Vollmar
1个回答

1

您可以在启动程序包定义文件中添加一个条件,以便启动程序检查 Windows 版本。描述文件位于

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\
    Packages\DotNetFX40\Product.xml

在一个64位的Windows系统上或在任何其他操作系统上,
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\
    Packages\DotNetFX40\Product.xml

ењЁ32дҢҚWindowsзі»з»џдёЉгЂ‚package.xmlе·Із»ЏеЊ…еђ«дғ†иү™ж ·зљ„жӘЂжџӨпәЊеЏ‚и§ЃиҮӨиҰЊ

<!--  Block install on less than Windows XP SP2 --> 
<FailIf Property="VersionNT" Compare="VersionLessThan" 
        Value="5.1.2" String="InvalidPlatformWinNT" /> 

我找不到相关的文档,但看起来 VersionNT 值的第三个数字是服务包级别,所以将条件更改为检查值为 "5.1.3" 可能会完成工作。


1
我们内部决定从安装程序中移除框架,让客户单独安装它(以将微软的问题与我们自己的问题分开)。我相信你的答案在我的情况下也可以奏效,所以你得到了饼干。谢谢! - roufamatic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接