使用Wix检查.NET 4.0
我正在尝试修改现有的Wix脚本,以在继续之前检查是否安装了.NET 4.0,而不是.NET 2.0。这是当前使用wxs文件中的自定义操作完成的:使用Wix检查.NET 4.0,.net,wix,wix3,.net,Wix,Wix3,我正在尝试修改现有的Wix脚本,以在继续之前检查是否安装了.NET 4.0,而不是.NET 2.0。这是当前使用wxs文件中的自定义操作完成的: <InstallUISequence> <Custom Action="VSDCA_VsdLaunchConditions" Before="ValidateProductID">NOT Installed</Custom> </InstallUISequence> 未安装 我找不到任何要更改的
<InstallUISequence>
<Custom Action="VSDCA_VsdLaunchConditions" Before="ValidateProductID">NOT Installed</Custom>
</InstallUISequence>
未安装
我找不到任何要更改的设置,因此它会检查.NET 4.0而不是2.0。它似乎是硬编码的,它是否链接到Wix或Windows Installer的版本?我们目前正在使用WIX3.0。如果计算机上只安装了.NET 4.0,则安装程序日志中会出现以下错误:
操作开始15:53:36:VSDCA\u VsdLaunchConditions。
信息2898。对于VSI_MS_Sans_Serif13.0_0_0 textstyle,系统在0个字符集中创建了13像素高的“MS Sans Serif”字体。
调试:错误2835:在对话框ErrorDialog上找不到控件ErrorIcon
安装程序在安装此程序包时遇到意外错误。这可能表明此软件包存在问题。错误代码是2835。参数为:ErrorIcon、ErrorDialog、,
此安装程序需要.NET Framework 4.0版
行动结束于15:53:39:VSDCA_VsdLaunchConditions。返回值3。
操作于15:53:39结束:安装。返回值3
如果安装了.NET 2.0,则会继续安装。如果安装了dotnet 4.0,则HKEY\U LOCAL\U 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>
我后来发现,设置项目最初是在VS2005中创建的,并使用dark等转换为Wix项目。这提取了一个名为MSVBDPCA.dll的文件,该文件通过
操作检查.NET 2.0。
在VS2010中创建一个新的设置项目,然后转换为Wix将创建一个新的MSVBDPCA.dll,用于检查.NET 4.0。您是明确使用Wix v3.0还是实际使用3.x?如果您使用的是<3.5,您将无法使用允许您检查.NET 4.0的
WixNetfxExtension
属性。我正在尝试找出VSDCA_VsdLaunchConditions检查.NET 2.0的原因/方式。我找不到任何配置来控制它。给你。