在WIX Bootstrapper中检查.net 4.0框架的问题



我有一个WIX引导应用程序,它安装了一个Windows服务(MSI)和一个EXE。我一直在尝试检查。net 4.0框架是否作为windows服务安装程序的先决条件。如果框架不存在,我想停止安装程序,并指出他们可以下载它的地方。当前,服务安装程序会忽略该条件,并尝试安装服务,而不管框架是否存在。

这个代码片段在windows服务安装程序中:

<Product Id="*" Name="TestService" Language="1033" Version="1.0.0.1" Manufacturer="xxxxxx" UpgradeCode="<xxxxxxxx">
    <PropertyRef Id="NETFRAMEWORK40FULL" />
    <Condition Message="You need to have the .NET 4.0 Framework installed">
        <![CDATA[Installed OR NETFRAMEWORK40FULL]]>
    </Condition>
</Product>

这个片段来自Bootstrapper:

<Bundle Name="BundledInstall" Version="1.0.0.0" 
    UpgradeCode="xxxxxx">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
  <bal:WixStandardBootstrapperApplication
    LicenseFile="xxxxxxxx"
    LogoFile="xxxxxxxx"
    />
</BootstrapperApplicationRef>
<Chain>
    <PackageGroupRef Id="MyPackage" />
    <PackageGroupRef Id="ServicePackage" />
</Chain>
</Bundle> 
<Fragment>
 <PackageGroup Id="ServicePackage">
    <MsiPackage
   SourceFile="C:UsersMaxdevwixpappBootstrappersebService.msi" Cache="no" ForcePerMachine="yes">
      </MsiPackage>
 </PackageGroup>
</Fragment>

谢谢你的帮助

您可以使用本页面定义的WixNetfxExtension属性:

例如,要检查是否安装了3.5框架或3.5 SP,您可以使用以下属性。
NETFRAMEWORK35 - Set to #1 if the .NET Framework 3.5 is installed (not set otherwise).
NETFRAMEWORK35_SP_LEVEL - Indicates the service pack level for the .NET Framework 3.5.

要在项目中使用这些属性,请遵循以下步骤:

步骤1。将WiX .NET扩展库添加到项目中如果你在Visual Studio中使用WiX,你可以使用添加引用对话框添加扩展:

    在Visual Studio中打开您的WiX项目
    1. 在解决方案资源管理器中右键单击项目并选择Add Reference…
    2. 从列表中选择WixNetFxExtension.dll程序集,然后单击Add
    3. 关闭"添加引用"对话框

步骤2:将WiX .NET扩展命名空间添加到您的项目

一旦库被添加到您的项目中,您需要将. net扩展名称空间添加到您的项目中,以便您可以访问适当的WiX元素。为此,通过添加以下属性来修改项目中的顶级元素:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">

步骤3:在项目中引用所需的属性

<PropertyRef Id="NETFRAMEWORK20"/>

步骤4:在条件

中使用预定义的属性

使用*_SP_LEVEL属性检查框架的服务包级别。如果机器上没有。net Framework 3.0 SP1,下面的条件将阻止安装。

<Condition Message="This application requires .NET Framework 3.0 SP1. Please install the .NET Framework then run this installer again.">
    <![CDATA[Installed OR (NETFRAMEWORK30_SP_LEVEL and NOT NETFRAMEWORK30_SP_LEVEL = "#0")]]>
</Condition>

来源:如何检查。net框架版本

相关内容

  • 没有找到相关文章

最新更新