2010-06-11 9 views
22

Mam projekt wdrożenia, który nie pozwala na zainstalowanie się w starszej wersji. Plik msi mówi, aby odinstalować program najpierw z Dodaj/Usuń programy. To nie jest dobre doświadczenie dla użytkownika. Jak mogę to zrobić, aby instalator najpierw usunął oprogramowanie, a następnie zainstalowało nową wersję?Instalowanie nowej wersji projektu wdrażania na starą wersję

+1

Co to ma wspólnego z językiem programowania C#? –

Odpowiedz

26

To jest trudne, trzeba wykonać następujące kroki,

  1. Set usunąć poprzednią instalację jako prawdziwe
  2. Set Wykrywanie nowej wersji jako prawdziwe
  3. wersja Twojego C# programu muszą zwiększać z każdym wdrożeniu
  4. Powinieneś zmienić wersję swojego instalatora na jedną wyższą wersję, a poprosi Cię o zmianę kodu produktu, wybierz TAK.
  5. Nie zmieniaj swojego kodu aktualizacji, niech to będzie takie samo.

Jeśli nie wykonasz 3 kroku poprawnie, instalator nadal będzie instalował i zachowywał stary plik, a wersja pliku każdego pliku musi być nowa, jeśli zmieniłeś treść.

+0

Myślę, że "Zdalna poprzednia instalacja" oznacza "RemovePreviousVersions" – CRice

+0

Jakieś pomysły na to, jak to osiągnąć, bez zmiany kodu identyfikatora ProductCode? (drobna aktualizacja) http://stackoverflow.com/questions/3114637 – CRice

+0

"Twoja wersja programu C# musi się zwiększać przy każdym wdrożeniu", co oznacza każdy dotknięty zespół, nieprawdaż? – mbx

5

konfiguracja zestawu właściwości projektu RemovePreviousVersions prawda

Ale trzeba użyć tego samego UpgradeCode w obu aplikacjach konfiguracji

+0

+1 dzięki za wskazanie tego samego uaktualnionego kodu –

13

starałem się kilka scenariuszy, może to pomoże ktoś zaoszczędzić trochę czasu

Zmiana wersji złożenia ORAZ zmiany wersji instalatora projektu (zmienia się także zmiana kodu produktu) -> Instalacje aplikacji nad istniejącym -> biblioteki dll i wersje exe zostają zaktualizowane -> JEŚLI ścieżka zainstalowana jest inna, istniejące wstępnie zainstalowane pliki projektu są usuwane z miejsca, w którym zostały zainstalowane. (I plików dokonane od pozostać)

Jeśli zmiany Wersja montaż i zmiany wersji Instalator projektu (bez ProductCode Guid zmianie) -> Użytkownik jest proszony, aby ręcznie usunąć aplikację -> jeśli oni iść do przodu i wyjąć z panelu sterowania pierwszy , aplikacja może zostać zainstalowana, a biblioteki DLL i wersje exe zostaną zaktualizowane do nowej wersji

Jeśli zmienia się TYLKO Wersja Montażowa lub zmienia się tylko wersja instalatora projektu (bez zmiany kodu ProductCode) -> Użytkownik jest proszony o ręczne usunięcie aplikacji -> jeśli najpierw usuniesz z panelu sterowania, aplikacja może zostać zainstalowana, a biblioteka DLL i pliki exe zostaną zaktualizowane do nowej wersji

Jeśli TYLKO zmienia się wersja instalatora projektu (zmienia się również kod produktu) -> MSI przechodzi proces instalacji, ale biblioteki DLL i wersja exe nie zmieniają wersji - są one zgodne z wersją zestawu i są zastępowane plikami z tego samego zestawu Wersja kompilacji -> JEŚLI zainstalowana ścieżka jest inna, istniejące wstępnie zainstalowane pliki projektu są usuwane z miejsca, w którym zostały zainstalowane. (wszystkie pliki wykonane od dawna)

Jeśli zmieni się wersja instalatora projektu (zmienia się również kod produktu), a wersja zestawu jest niższa niż wersja zainstalowana -> Instalacja rozpocznie się, gdy użytkownik zostanie poinformowany, instalacja nie powiedzie się jako stara wersja.

+1

pomocna. – Munavvar

0

Możesz to zrobić czasami po zainstalowaniu nowej wersji, stary produkt pozostanie taki sam.

Należy zmienić numer sekwencji RemoveExistingProducts, Musi to być harmonogram między Zainstaluj funkcję sprawdzania poprawności i InstallInitialize. Można to zrobić przez ORCA

ex InstallValidate = 1400 InstallInitialize = 1500

Następnie RemoveExistingProducts = 1450

Powiązane problemy