2013-08-28 25 views
5

Mam MSI stworzony w WiX 3.6, który oczywiście instaluje różne rzeczy i tworzy skrót do exe, który nie jest faktycznie instalowany przez mój MSI (wiemy na pewno, że plik exe znajduje się w określonym folderze, ponieważ jest instalowany przez oddzielny MSI, co jest wymagane wcześniejszym warunkiem dla mojego MSI). Skrót, który tworzymy, przekazuje kilka argumentów, które faktycznie informują exe o użyciu rzeczy, które właśnie zainstalowaliśmy. Wszystko działa dobrze, ale teraz chcę, aby MSI automatycznie uruchamiał exe z tymi samymi argumentami, których używamy w skrócie.Wix - Uruchom exe (z argumentami) na końcu instalacji, który nie został zainstalowany przez bieżący MSI

Próbowałem wykonać ten artykuł - http://wixtoolset.org/documentation/manual/v3/howtos/ui_and_localization/run_program_after_install.html, ale zakładam, że chcesz uruchomić exe, który właśnie zainstalowałeś i nie używasz argumentów exe.

Próbowałem też stosując akcję niestandardową jak -

<CustomAction Id="RunMainApp" 
      Directory="FREDFOLDER" 
      ExeCommand="[FREDFOLDER]Fred.exe -SBDSingleApp -SBDSplash=&quot;MySplash.bmp&quot;" 
      Execute="commit" 
      Return="ignore"/> 

<InstallExecuteSequence> 
    <Custom Action="RunMainApp" Before="InstallFinalize" /> 
</InstallExecuteSequence> 

ten był bardziej obiecujące - zabrakło exe, ale tak przed rzeczywista instalacja skończył - co oczywiście nie jest prawidłowy.

Szczerze mówiąc, nie przejmuję się tym, że mam interfejs jak w pierwszym przykładzie - ponieważ 90% czasu MSI będzie działał w trybie cichym bez kreatora.

+0

Sprawdź moją odpowiedź tutaj, powinno ci to pomóc: http://stackoverflow.com/a/19274431/1766402 – Isaiah4110

Odpowiedz

2

Czy próbowałeś zmienić Execute = "commit" na Execute = "odroczony", spowoduje to, że akcja niestandardowa zostanie uruchomiona po uruchomieniu skryptu instalacyjnego, ale nie po zakończeniu procesu instalacji, dla tego ostatniego będziesz na zewnątrz kontekstu wykonania instalacji.

+1

Powód, którego użyłem "Commit" było to, że książka tekstowa, której używam jako przewodnika, mówi "Ustawienie wykonaj, aby zatwierdzić, zaplanuje akcję, która ma zostać uruchomiona po zakończeniu insaallation "- co brzmi jak to, czego potrzebowałem. Ale mówiąc, że próbowałem tylko tego, co sugerowałeś i nie robiło to żadnej różnicy - nadal wywołuje exe, zanim zakończy się kreator instalacji. Instalacja mogła zrobić wystarczająco dużo, aby program rzeczywiście działał, ale po prostu "czuje się" źle - mając nasze pole logowania (pierwsza rzecz, którą robi nasza aplikacja), podczas gdy kreator instalacji wciąż działa! –