2011-04-23 8 views
6

Podążałem za tutorialem here, aby zaimplementować skrót do odinstalowywania w menu Start.Odinstalować skrót w WiX, gdy identyfikator produktu jest *, aby umożliwić większe aktualizacje?

W skrócie, sposób tworzenia wpisu deinstalacji jest następujący:

<Shortcut Id="UninstallProduct"    
      Name="Uninstall My Application" 
      Target="[SystemFolder]msiexec.exe" 
      Arguments="/x [ProductCode]" 
      Description="Uninstalls My Application" /> 

podstawie Rob Mensching za sugestią here, jeśli aplikacja jest na tyle mały i nie trzeba obsługiwać małe aktualizacje i drobne uaktualnienia (których nie mam), możesz zmusić każdą aktualizację do poważnej aktualizacji. Jest to pokazane here. Kiedyś sugestię Roba, który był w tym:

<Product Id="*" UpgradeCode="PUT-GUID-HERE" Version="$(var.ProductVersion)"> 
<Upgrade Id="PUT-GUID-HERE"> 
    <UpgradeVersion OnlyDetect="yes" Minimum="$(var.ProductVersion)" Property="NEWERVERSIONDETECTED" IncludeMinimum="no" /> 
    <UpgradeVersion OnlyDetect="no" Maximum="$(var.ProductVersion)" Property="OLDERVERSIONBEINGUPGRADED" IncludeMaximum="no" /> 
</Upgrade> 

<InstallExecuteSequence> 
    <RemoveExistingProducts After="InstallInitialize" /> 
</InstallExecuteSequence> 

Teraz moje pytanie brzmi, czy Id Produktu randomizacji (*), aby umożliwić większe uaktualnienie odbędzie się, czy jest jakiś inny sposób, aby dodać skrót do odinstalowania do menu startowego czy musimy to zrobić poprzez Dodaj/Usuń programy? Wolałbym utworzyć skrót w menu startowym, ponieważ jest on łatwiejszy dla użytkownika. Oczywiście tak jak jest teraz, to nie zadziała, ponieważ [ProductCode], który jest używany w argumentach msiexec, będzie się zmieniał przy każdej instalacji. Dzięki.

Odpowiedz

4

Czy mówisz, że już go wypróbowałeś i to nie działa? Jak to się nie udaje? Jaki jest argument skrótu? Użycie Product/@ Id = "*" ustawia właściwość ProductCode, więc powinna działać poprawnie.

+0

Może robię coś banalnego źle, ale nie powiedzie się, że po kliknięciu Odinstaluj, msiexec wydaje się odinstalowywać aplikację, ale nic nie robi, aplikacja wciąż tam jest, wszystkie skróty wciąż tam są . Mam I Zdefiniowane i używam ich zgodnie z oryginalnym wpisem. Zarówno Product UpgradeCode, jak i Upgrade Id mają ten sam identyfikator GUID, ale uważam, że problem polega na tym, że Product Id = * i msiexec używa Arguments = "/ x [ProductCode]. Czy powinny być inne? – Jack

+0

Czy mówisz [ProductCode] = Identyfikator produktu (*) w czasie kompilacji? – Jack

+0

Po prostu chcę dodać, otrzymuję te same wyniki (odinstalowanie z menu startowego nie działa), gdy używam: Zamiast tagów Upgrade i InstallExecuteSequence – Jack

Powiązane problemy