WIX检测.net 4.5没有找到PropertyRef NETFRAMEWORK45设置?

时间:2014-04-17 17:18:44

标签: .net wix wix-extension .net-4.5

我把它放在

的评论中

How can I check .NET framework 4.5 prerequestics in WiX

但我认为我需要将此问题作为一个单独的问题。我没有得到我的安装来捕获.NET 4.5已安装。我安装了.NET 4.5。我提到了说明。但是,即使安装了4.5,我仍然会得到条件弹出消息。我按照指示:

http://wixtoolset.org/documentation/manual/v3/customactions/wixnetfxextension.html

http://wixtoolset.org/documentation/manual/v3/howtos/redistributables_and_install_checks/check_for_dotnet.html

我正在使用最新的wix 3.8版本,即使遵循我认为的方向,也不会识别.NET 4.5。

1。)使用顶级wix标签进行wxs更新

xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"

2。)添加propertyRef标签(我相信它出现在产品部分 - 可能是个错误)

 <WIX>
   <PRODUCT>

     <PropertyRef Id="NETFRAMEWORK45"/>

3。)在产品部分下添加条件块,我也认为它与PropertyRef处于同一级别

<Condition Message="This application requires .NET Framework 4.5. Please install the .NET Framework then run this installer again.">
    <![CDATA[Installed OR NETFRAMEWORK45]]>
</Condition>

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以获取详细日志似乎也没有显示任何内容。

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

Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full上的注册表确实具有适当的版本和发布值。

1 个答案:

答案 0 :(得分:1)

在完成

之后回答我自己的问题

这个项目最初是从MSIbuild创建的,Wix dark实用程序用于构建wxs。它包括自定义对话框和安装顺序。

通过删除自定义安装序列和对话框标签,然后添加-ext WixUIExtension,我能够在.NET 4.5 PC和尚未安装.NET 4.5的PC上成功查看正确的消息。