mam jeden setup MSI tak:Jak zrobić głównych ulepszeń podczas korzystania nagrywania/WiX 3.6
<Product Id="*" ... UpgradeCode="4207FF3B-5E0D-4311-9DFC-B41AA8DE2965" />
<MajorUpgrade DowngradeErrorMessage="Can't downgrade" />
To działa zgodnie z oczekiwaniami:
- Install produktowi
- rekompilacji (efektywne generowanie nowy identyfikator)
- Uruchomienie nowego pliku msi wywołuje widok zmiany i mogę naprawić lub odinstalować produkt.
Dobrze. Ale potem przychodzi poparzenie.
Stworzyłem najprostszy pakiet, z którego można coś zrobić. Używam standardowego bootrapper i po prostu dodać jeden pojedynczy MsiPackage:
<MsiPackage SourceFile="$(var.Setup.TargetPath)" />
Problemem jest to, że po każdym rekompilacji mogę ponownie zainstalować produkt przy zainstalowanym produkcie, bez zmieniania czegokolwiek! Powoduje to duplikowanie wpisów ARP!
Jeśli nie dokonam ponownej kompilacji i uruchomienia pliku exe pakietu dwukrotnie, otrzymam ekran konfiguracji modyfikacji zgodnie z oczekiwaniami. Co mogę zrobić, aby zachować takie samo zachowanie przy wypalaniu, jak w przypadku MSI?
Tak, dziękuję. Ale czy naprawdę nie ma sposobu, aby zapobiec instalacji side-by-side bez zwiększania numeru wersji? Chciałbym zachować to samo, co w pakiecie MSI. –
Aplikacja bootstrapper może zastąpić domyślne zachowanie typu "no-op", zmieniając stan żądania w OnPlanRelatedBundle. –
Co byś zastąpił stan żądania, aby to zadziałało? Obecny? –