如何在WiX

时间:2016-11-29 19:26:29

标签: .net wix

这实际上是这篇文章的另一个问题: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以获取详细日志似乎也没有显示任何内容。

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

1 个答案:

答案 0 :(得分:1)

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