2014-06-11 84 views
0

我正在接管此項目,並且無法訪問最初設置它的人員。目前該軟件包包含.net4。需要刪除文件並使最終用戶手動下載.net。我試圖設置捆綁來檢查已安裝的.net版本(如果有的話),如果它不符合請求,則顯示具有下載鏈接的詳細信息,然後中止安裝並關閉。使用WiX Bundle強制安裝失敗並顯示消息MBA

每當我嘗試刪除指向.net包的變量時,我都會收到構建錯誤。這是我迄今爲止所擁有的。

 <Chain> 
     <PackageGroupRef Id='Netfx4Full' /> 
     <MsiPackage SourceFile="$(var.TargetDir)Client.msi" Id="Client" Cache="no" Visible="no" ForcePerMachine="yes"> 
     <MsiProperty Name="INSTALLDIR" Value="[InstallFolder]"/> 
     </MsiPackage> 
    </Chain> 
    </Bundle> 
    <Fragment> 
    <PropertyRef Id="NETFRAMEWORK40FULL"/> 
    <Variable Name="InstallationPath" bal:Overridable="yes" /> 
    <WixVariable Id="WixMbaPrereqPackageId" Value="Netfx4Full" /> 
    <WixVariable Id="WixMbaPrereqLicenseUrl" Value="NetfxLicense.rtf" /> 
    <Variable Name="DisplayVersion" Value="$(var.BundleVersion)" /> 
    <util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" Value="Version" Variable="Netfx4FullVersion" /> 
    <util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" Value="Version" Variable="Netfx4x64FullVersion" Win64="yes" /> 

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

    <PackageGroup Id="Netfx4Full"> 
     <ExePackage Id="Netfx4Full" Cache="no" PerMachine="yes" Permanent="yes" Vital="yes" Compressed="no" 
        SourceFile="DotNetInstallers/dotnetfx40_full_x86_x64.exe" 
        DownloadUrl="http://go.microsoft.com/fwlink/?LinkId=164193" 
        DetectCondition="Netfx4FullVersion OR Netfx4x64FullVersion"> 
    </ExePackage> 
    </PackageGroup> 
    </Fragment> 

任何幫助,將不勝感激。

+0

爲什麼要從包中取出.NET包?捆綁軟件的主要特點之一是將您的產品及其所有先決條件一起交付到一個exe文件中。 –

+0

這是客戶想要的。這主要是考慮文件大小。 – user3731757

回答

0

基於以下幾行,看起來您正在使用ManagedBootstrapperApplicationHost。

<WixVariable Id="WixMbaPrereqPackageId" Value="Netfx4Full" /> 
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="NetfxLicense.rtf" /> 

的ManagedBootstrapperApplicationHost是維克斯內置的方式來使用內置.NET(有管理的學士學位,或MBA)的自定義BootstrapperApplication。 MBAHost要求你在你的軟件包中打包.NET。如果您擔心捆綁包的大小,那麼可以在WixNetFxExtension中使用NetFx4Web軟件包。這將使軟件包在運行時下載Web安裝程序。您可以使用mbapreq.thm和mbapreq.wxl自定義安裝.NET時出現的用戶界面。

+0

我能夠讓客戶端下載.net軟件包而無需捆綁它。現在你已經指出了我的這些文件的方向,也許我可以暫停安裝並使其本地化。謝謝您的幫助! – user3731757

相關問題