Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Msbuild WIX:发电机捆扎机状况?_Msbuild_Wix_Conditional Statements_Bootstrapper - Fatal编程技术网

Msbuild WIX:发电机捆扎机状况?

Msbuild WIX:发电机捆扎机状况?,msbuild,wix,conditional-statements,bootstrapper,Msbuild,Wix,Conditional Statements,Bootstrapper,我用WIX构建了一个安装程序,并使用GenerateBootstrapper任务将其与.NET4.0框架打包。现在.NET 4.0无法安装在XP SP2上,但它似乎没有对此进行先决条件检查,因此其安装程序中途失败 我想添加我自己的检查,以确保安装整个软件包的操作系统受到.NET4.0框架的支持。使用GenerateBootstrapper时,是否有办法在引导程序中嵌入操作系统/服务包检查?如果没有,我如何才能完成此操作?您可以向引导程序包定义文件添加一个条件,以便引导程序检查Windows版本。

我用WIX构建了一个安装程序,并使用
GenerateBootstrapper
任务将其与.NET4.0框架打包。现在.NET 4.0无法安装在XP SP2上,但它似乎没有对此进行先决条件检查,因此其安装程序中途失败


我想添加我自己的检查,以确保安装整个软件包的操作系统受到.NET4.0框架的支持。使用
GenerateBootstrapper
时,是否有办法在引导程序中嵌入操作系统/服务包检查?如果没有,我如何才能完成此操作?

您可以向引导程序包定义文件添加一个条件,以便引导程序检查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" /> 


我找不到相关文档,但看起来第三个版本NT值是service pack级别,因此可能需要更改条件以检查值
“5.1.3”
即可。是否确实无法在Windows XP SP2上安装.NET 4.0 Framework?bootstrapper的描述明确禁止安装,只有当service pack级别低于SP2时(当然,Microsoft对XP SP2的官方支持不再可用,但这是另一回事)。有趣的是。我想知道为什么安装.NET4.0会失败。MS在框架下载需求中调用SP3。嗯,我以前见过微软提供的bootstrapper包定义没有正确地进行检查。我们决定在内部从安装程序中删除框架,让客户端单独安装(以将微软的缺点与我们的区别开来)。我很确定你的回答在我的情况下会起作用,所以你得到了饼干。谢谢