2013-08-16 15 views
16

Atrybut "Wersja" w pakiecie WiX jest wyświetlany w Programy i funkcje. Dlatego powinien to być ten sam numer, co mój aktualny numer wersji aplikacji, prawda?Jak ustawić wersję pakietu WiX w taki sam sposób jak wersję mojej aplikacji

Przy założeniu, że powinny być takie same, nie wydaje się od razu oczywiste, jak automatycznie aktualizować tę aktualizację. Mam MSI robiąc to jak na this question, ale nie bit Bundle/Bootstrapper. Jak mogę zrobić pakiet Bootstrapper zrobić to samo i odczytać numer wersji MSI?

Odpowiedz

22

Aby odpowiedzieć na twoje pierwsze pytanie, nie ma na to sztywnych reguł. Nie jest więc konieczne aktualizowanie wersji pakunku WIX i dopasowanie jej do wersji MSI.

Co do drugiego pytania, nie jestem naprawdę pewien. Ale można spróbować tej zmiennej Spoiwo:

!(bind.packageVersion.PackageID) 

EDIT zastąpić PackageID z elementem „ID” atrybut programu, który chcesz zainstalować. Coś jak: Version="!(bind.packageVersion.MyAppName)"

<MsiPackage SourceFile="SomePath\MyAppName.msi" Id="MyAppName"/> 

jak wspomniano w tym POST. Sprawdź także WIX documentation, aby uzyskać więcej zmiennych wiążących.

EDIT 11.05.2017 - wygląda jak tam było zamieszanie wokół tego, co powinno być packageID i ja edytowany odpowiedź w oparciu o Bob Lutz odpowiedzieć poniżej.

+3

dla osób odwiedzających, zamień "PackageID" na * nazwa * instalowanego programu. Powinien wyglądać jak "Version ="! (Bind.packageVersion.MyAwesomeApp) "(przynajmniej pracował dla mnie ..) – Default

+0

Właściwie to nie nazwa aplikacji, ale jej identyfikator. Zobacz odpowiedź Boba na to samo pytanie: http://stackoverflow.com/a/25828610/118878 – DenNukem

+0

'! (Bind.packageVersion.PackageID)' dostaje numer wersji pakietu pliku msi reprezentowanego przez 'PackageID'. Aby ten numer był taki sam jak numer wersji aplikacji, potrzebujesz również '' Version = "! (Bind.FileVersion.MyAppID)" 'w twoim pliku konfiguracyjnym * msi * (atrybut elementu' Product'). –

11

celu uzupełnienia odpowiedź Isaiah4110 za (nie mogę jeszcze komentować i moja edycja została odrzucona):

PackageID pochodzi od wartości ID dla jednego z typów pakietów (np MsiPackage, ExePackage ...) w twojej Łańcuch. Aby odwołać się do numeru wersji <MsiPackage SourceFile="SomePath\MyMsi.msi" Id="MyMsi"/> należy użyć! (Bind.packageVersion.MyMsi).

Jeśli nie masz identyfikatora (takiego jak ja), musisz go zdefiniować.

+1

To powinna być zaakceptowana odpowiedź. –

Powiązane problemy