2013-06-20 108 views
2

我試圖使用WixStandardBootstrapperApplication創建引導應用程序。除了處理重新啓動之外,它可以完成我所需要的一切。繼續在WiX中重新啓動後安裝

我需要安裝一組EXE文件。只有第一個是.NET 4.5,需要重啓。我會延遲重新啓動,但我不能因爲其他程序之一依賴於它。我嘗試使用退出代碼強制重新啓動,但是當計算機啓動備份時,引導程序每次都停留在該退出代碼處,並且我無法安裝其他任何東西。當且僅當程序尚未重新啓動(或任何其他邏輯方式)時,是否有辦法應用退出代碼?

下面是我在做什麼...

<ExePackage 
    Id    = "NetFx45Redist" 
    Cache   = "no" 
    Compressed  = "yes" 
    PerMachine  = "yes" 
    Permanent  = "yes" 
    Vital   = "yes" 
    InstallCommand = "/quiet /norestart" 

    SourceFile  = "C:\Users\visibleEP\Documents\Visual Studio 2012\Projects\Bootstrapper1\VEP Deploy\Setup Files\dotNetFx45_Full_setup.exe" 
    DetectCondition = "(Netfx4FullVersion=&quot;4.5.50709&quot;) AND (NOT VersionNT64 OR (Netfx4x64FullVersion=&quot;4.5.50709&quot;))" 
    InstallCondition = "(VersionNT >= v6.0 OR VersionNT64 >= v6.0) AND (NOT (Netfx4FullVersion=&quot;4.5.50709&quot; OR Netfx4x64FullVersion=&quot;4.5.50709&quot;))"> 

    <ExitCode Behavior = "forceReboot"/> 
</ExePackage> 

<ExePackage 
    SourceFile = "...\...\Setup Files\Encoder_en.exe" 
    InstallCommand = "/q"/> 

<ExePackage 
    SourceFile = "...\...\Setup Files\vcredist_x86.exe" 
    InstallCommand = "/q /ACTION=Install" 
    RepairCommand = "/q ACTION=Repair /hideconsole" /> 

<ExePackage 
    SourceFile = "...\...\Setup Files\vcredist_x64.exe" 
    InstallCommand = "/q /ACTION=Install" 
    RepairCommand = "/q ACTION=Repair /hideconsole" /> 
+0

可能相關:我有一個問題,安裝程序在重新啓動後沒有繼續。使用ViX 3.9而不是3.7解決了問題。 –

回答

2

更換

<ExitCode Behavior="forceReboot"/> 

隨着

<ExitCode Behavior="forceReboot" Value="1641" /> 
<ExitCode Behavior="forceReboot" Value="3010" /> 

兩個1641和3010 「需要重新啓動才能完成安裝,這個消息表明成功。「

您的版本將所有退出代碼視爲您觀察到的相同。請參閱該安裝程序上的the documentation。幸運的是,退出代碼被記錄在案。

更新: 如果您確信所有成功代碼都已記錄在案,我添加了已知的成功代碼和可能爲error的全部代碼。

<ExitCode Behavior="success" Value="0" /> 
<ExitCode Behavior="error"/> 
+0

現在的問題似乎是,即使重新啓動並且.net應該已經安裝,這些代碼似乎總是返回。我只是希望引導程序跳過安裝.net,如果它已經存在,這是檢測和安裝條件應該做的,但他們似乎沒有工作或其他事情正在進行。安裝程序正處於需要重新啓動的無限循環中。 –

+0

另外!它似乎工作得很好.net 4.5已經安裝在一個系統上(即它跳過.net安裝和其餘的)...這似乎沒有任何意義,我看到重啓後,.net是因此在安裝時不應該發生循環。 –

+1

我想我修好了!我補充說: 它似乎工作,所以謝謝你! –

相關問題