2

我想爲.NET 4.5.2做一個安裝包。Wix檢測.NET 4.5.2捆綁

我遵循these說明,並且它對該.NET版本正常工作。

但是,當我更改版本,如下,它不會當我運行第二次安裝程序檢測已安裝的.NET版本:

<ExePackage Id="Netfx452" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes" InstallCommand="/q /norestart" 
    SourceFile="$(var.ProjectDir)Resources\NDP452-KB2901907-x86-x64-AllOS-ENU.exe" 
    DetectCondition="(Netfx4FullVersion=&quot;4.5.51209&quot;) AND (NOT VersionNT64 OR (Netfx4x64FullVersion=&quot;4.5.51209&quot;))" 
    InstallCondition="(VersionNT >= v6.0 OR VersionNT64 >= v6.0) AND (NOT (Netfx4FullVersion=&quot;4.5.51209&quot; OR Netfx4x64FullVersion=&quot;4.5.51209&quot;))"/> 
+0

您可以修改WiX NetFxExtens離子爲4.5.1。這裏是來源:https://wix.codeplex.com/SourceControl/latest#src/ext/NetFxExtension/wixlib/NetFx451.wxs – 2014-09-02 16:23:51

+0

該鏈接不起作用 – 2014-09-03 12:09:22

回答

7

這在維克斯3.9只支持:

  1. 包括參考以WixNetFxExtension.dll

    enter image description here

  2. 在你Bundle.wxs文件,添加以下到您的<Bundle><Chain>元素

    <PackageGroupRef Id="NetFx452Redist" /> 
    

    另外,替換任何爲Id屬性的值如下:

    PackageGroup ID  Description 
    NetFx452Web   .Net Framework 4.5.2 web setup. 
    NetFx452Redist  .Net Framework 4.5.2 standalone setup. 
    

這裏是一個短最終標記示例:

<Bundle Name="My App" Version="1.0.0.0" Manufacturer="Me" UpgradeCode="{YOUR-GUID-HERE}"> 
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense"/> 
    <Chain> 
     <PackageGroupRef Id="NetFx452Redist" /> 
     <MsiPackage SourceFile="$(var.AppInstaller.TargetPath)" /> 
    </Chain> 
</Bundle> 
+0

比方說,然後MsiPackage需要存在.NET v4.5.2安裝(因爲它啓動了一個服務或其他東西)。我如何設置這個以在v4.5.2安裝後強制重新啓動,然後在重新啓動時恢復?我看到一些舊的.NET版本檢測的參考,但我認爲有一個更好/更簡單的方法來使用WiX v3.9及更高版本來完成此操作。 – Dan 2015-12-07 14:38:54