这实际上是这篇文章的另一个问题:How Can I check .NET framework 4.5 prerequisites?
但我遇到了最新的wix 3.8版本的问题,即使按照我认为的方向,也没有认识到.NET
1。)使用顶级wix标签进行wxs更新
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"
2。)添加propertyRef标签(我相信它出现在产品部分 - 可能是个错误)
<WIX>
<PRODUCT>
<PropertyRef Id="NETFRAMEWORK45"/>
3。)在产品部分下添加条件块,我也认为它与PropertyRef处于同一级别
4.。)我在命令行中使用蜡烛和灯光来自bat文件
echo running the packaging step: wix candle DEV %VERSION%
call "candle" myproject.wxs -ext WiXNetFxExtension -ext WixUtilExtension -I.\Includes\Dev -dVersion="%VERSION%" -dShortVersion="%SHORTVERSION%" -dBuildTime="%BuildTime%" > dev1.log
echo running the packaging step: wix light DEV
call "light" -sice:ICE50 -sice:ICE61 -sice:ICE64 -ext WiXNetFxExtension -ext WixUtilExtension -o myproject.msi myproject.wixobj > dev2.log
Log似乎都没有显示任何问题
dev1.log:
Windows Installer XML工具集编译器版本3.8.1128.0版权所有 (c)外曲基金会。保留所有权利。
myproject.wxs
dev2.log有一些警告,但不相关:
Windows Installer XML工具集链接器版本3.8.1128.0版权所有(c) 外曲基金会。保留所有权利。
C:\ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs(251):错误 LGHT0204:ICE38:组件NonAdvertisedShortcut安装到用户 轮廓。它必须使用HKCU下的注册表项作为其KeyPath,而不是 文件。 C:\ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs(259): 错误LGHT0204:ICE38:组件NonAdvertisedShortcut2安装到 用户资料。它必须使用HKCU下的注册表项作为其KeyPath, 不是文件。 C:\ SVN \ myproject_Trunk \客户端\编译\威克斯\ myproject.wxs(357) :警告LGHT1076:ICE40:REINSTALLMODE在属性中定义 表。这可能会造成困难。 C:\ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs(251):错误 LGHT0204:ICE43:组件NonAdvertisedShortcut未公布 快捷键。它应该使用HKCU下的注册表项作为其KeyPath,而不是 一份文件。 C:\ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs(259): 错误LGHT0204:ICE43:组件NonAdvertisedShortcut2有 未公布的快捷方式。它应该使用HKCU下的注册表项 它的KeyPath,而不是文件。 C:\ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs(30):警告 LGHT1076:ICE48:目录&#39; DRIVE.C&#39;似乎是硬编码的 属性表到本地驱动器。 C:\ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs(254):警告 LGHT1076:ICE90:捷径&#39; ScKey001&#39;有一个目录是 公共属性(ALL CAPS),位于用户配置文件目录下。这个 如果ALLUSERS属性的值发生变化,则会导致问题 UI序列。 C:\ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs(260):警告 LGHT1076:ICE90:捷径&#39; ScKey002&#39;有一个目录是 公共属性(ALL CAPS),位于用户配置文件目录下。这个 如果ALLUSERS属性的值发生变化,则会导致问题 用户界面序列。
我使用-v选项运行了光,并且还删除了ICE选项。
似乎扩展程序没有打包我的MSI。
运行msiexec以获取详细日志似乎也没有显示任何内容。
我觉得我在某个地方犯了一个简单的错误。
答案 0 :(得分:1)
问题的答案是该项目最初是从MSIbuild创建的,Wix dark实用程序用于构建wxs。它包括自定义对话框和安装顺序。通过删除自定义安装序列和对话框标签,然后添加-ext WixUIExtension,我能够在.NET 4.5 PC和尚未安装.NET 4.5的PC上成功查看正确的消息。