Mam aplikację pakowaną z MSI, która jest tworzona w pakiecie WiX wraz z różnymi wymaganymi narzędziami innych firm. Wyłączyłem modyfikowanie i naprawę działań w MSI du do działania aplikacji, aby wymagało pełnego odinstalowania przed ponownym zainstalowaniem tej samej wersji.Jak zapobiec podwójnemu pakietowi WiX z tym samym kodem uaktualniającym/Wersja
Po uruchomieniu MSI osobno działa on tak, jak powinien: instalatora nie można uruchomić dwukrotnie. To samo dotyczy ponownego uruchomienia tego samego pakietu. Ale po prostu przez przebudowanie pakietu (przy użyciu tego samego UpgradeCode
i Version
), instalacja zamiast tego działa (znacznie szybciej tym razem), a ja kończy się zduplikowanym wpisem wśród zainstalowanych programów. Naprawdę chciałbym temu zapobiec i sprawić, by pakiet działał jako MSI.
Próbowałem z różnymi warunkami ustawionymi na pakiecie; NOT WixBundleInstalled
, WixBundleInstalled != 1
itd. Ale nic z tego nie działa.
Dla porównania, oto zestawienie bundle:
<Bundle UpgradeCode="{FAF9CBDD-BE89-4B18-9921-FD5B426B5B0C}" IconSourceFile="$(var.SolutionDir)Resources\product.ico"
Name="Product 4.4" Version="4.4.0.0" Manufacturer="My Company" DisableModify="yes" Condition="NOT (WixBundleInstalled = 1)">
Znam przypadek, w którym może się to zdarzyć podczas instalowania msi (nie pakietu): jeśli 2 msi mają ten sam kod aktualizacji, ale są zainstalowane w różnych kontekstach (jeden instaluje się na użytkownika, a drugi na maszynę), wtedy nie będzie aktualizacji, tzn. będziesz mieć 2 zduplikowane wpisy. – Brainless
Dzięki. Oprócz naszego własnego MSI, istnieje jeden pobrany z zewnątrz (wstępnie zbudowany) MSI, który zawarliśmy w pakiecie. Próbowałem dodać 'ForcePerMachine =" yes "' do tej instrukcji 'MSIPackage', ale to nie pomogło. –
to Twój identyfikator produktu = "*"? – ColacX