使用Wix检查.NET 4.0

时间:2014-10-24 15:27:37

标签: .net wix wix3

我尝试修改现有的Wix脚本,以便在继续之前检查.NET 4.0,而不是.NET 2.0。目前,这是使用wxs文件中的自定义操作完成的:

<InstallUISequence>
  <Custom Action="VSDCA_VsdLaunchConditions" Before="ValidateProductID">NOT Installed</Custom>
</InstallUISequence>

我无法找到任何要更改的设置,以便检查.NET 4.0而不是2.0。它似乎是硬编码的,它可能与Wix或Windows Installer的版本相关联吗?我们目前正在使用Wix 3.0。如果计算机上仅安装了.NET 4.0,则安装程序日志中会出现以下错误:

  

动作开始15:53:36:VSDCA​​_VsdLaunchConditions。   信息2898.对于VSI_MS_Sans_Serif13.0_0_0 textstyle,系统创建了一个MS Sans Serif&#39; 0字符集中的字体,高度为13像素。   DEBUG:错误2835:在对话框ErrorDialog上找不到控件ErrorIcon   安装程序在安装此程序包时遇到意外错误。这可能表明此包装存在问题。错误代码是2835.参数是:ErrorIcon,ErrorDialog,   此设置需要.NET Framework 4.0版   行动结束15:53:39:VSDCA​​_VsdLaunchConditions。返回值3。   行动结束15:53:39:安装。返回值3。

如果安装了.NET 2.0,则继续安装。

2 个答案:

答案 0 :(得分:1)

如果安装了dotnet 4.0,将在HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework \ v4

上有一个注册表项

您可以检查此注册表项并在wix中弹出一条消息。

您可以使用以下代码执行此操作。

<Property Id="DOTNET40">
    <RegistrySearch Id="NetFramework40"
                    Root="HKLM"
                    Key="Software\Microsoft\NET Framework Setup\NDP\v4"
             Name="Install"
                    Type="raw" />
</Property>


<Condition Message="Please install the .NET Framework 4.0 and run this installer again.">
    <![CDATA[Installed OR DOTNET40]]>
</Condition>

答案 1 :(得分:0)

我发现设置项目最初是在VS2005中创建的,并使用黑暗等转换为Wix项目。这将提取一个名为MSVBDPCA.dll的文件,通过<CustomAction Id="DIRCA_CheckFX" BinaryKey="MSVBDPCADLL" DllEntry="CheckFX" />检查.NET 2.0行动。 在VS2010中创建一个新的设置项目,然后转换为Wix会创建一个新的MSVBDPCA.dll来检查.NET 4.0。