【问题标题】:How can I check .NET framework prerequisites in WiX如何在 WiX 中检查 .NET 框架先决条件
【发布时间】:2017-04-13 22:33:33
【问题描述】:

这实际上是这篇文章的另一个问题: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

日志似乎没有任何问题

dev1.log:

Windows Installer XML 工具集编译器版本 3.8.1128.0 版权所有 (c) 外曲线基础。保留所有权利。

我的项目.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\client\Build\wix\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:目录“DRIVE.C”似乎在 属性表到本地驱动器。 C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(254) :警告 LGHT1076:ICE90:快捷方式“ScKey001”的目录是 公共属性(全部大写),位于用户配置文件目录下。这 如果 ALLUSERS 属性的值在 用户界面序列。 C:\SVN\myproject_Trunk\client\Build\wix\myproject.wxs(260) :警告 LGHT1076:ICE90:快捷方式“ScKey002”的目录是 公共属性(全部大写),位于用户配置文件目录下。这 如果 ALLUSERS 属性的值在 UI 序列。

我已经使用 -v 选项轻松运行,并且还删除了 ICE 选项。

我的 MSI 似乎没有打包扩展。

运行 msiexec 以获取详细日志似乎也没有显示任何内容。

我觉得我在某个地方犯了一个简单的错误。

【问题讨论】:

    标签: .net wix


    【解决方案1】:

    问题的答案是这个项目最初是从 MSIbuild 创建的,并且使用 Wix dark 实用程序来构建 wxs。它包括自定义对话框和安装顺序。通过删除自定义安装顺序和对话框标签,然后添加 -ext WixUIExtension,我能够在 .NET 4.5 PC 和尚未安装 .NET 4.5 的 PC 上成功看到正确消息。

    【讨论】:

      猜你喜欢
      • 2013-02-10
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      • 2017-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多