2010-09-29 8 views
5

Utworzono mój instalator MSI dla naszej aplikacji C# poprzez VS 2008. Zainstalowałem go. Stworzył dla mnie skrót na pulpicie. Kliknąłem ten skrót, proces instalacji ponownie się uruchomił i na końcu uruchomiono naszą aplikację. Nie było tak wczoraj, zanim dodałem jakieś niestandardowe działanie do utworzenia bazy danych. Nie odtworzyłem skrótu w instalatorze. dlaczego tak jest?Dlaczego skrót utworzony przez moją instalację MSI ponownie rozpoczyna proces konfiguracji?

Odpowiedz

5

MSI zawiera funkcję automatycznej naprawy, która sprawdza, czy wszystkie składniki zainstalowane przez MSI są nadal obecne podczas uruchamiania aplikacji za pomocą skrótu.

W twoim przypadku prawdopodobnie jeden (lub więcej) składników został usunięty, więc instalator jest ponownie uruchamiany w celu naprawy instalacji.

Aby zapobiec automatycznej naprawy z systemem albo

  • Upewnij plik nie, ustawienie rejestru lub inny zainstalowany komponent jest usuwany

lub

  • Nie ustawić klucz ścieżka do tych komponentów. To uniemożliwi sprawdzenie przez MSI tych konkretnych składników.

Wygląda na to, że twój MSI został utworzony przez projekt instalacji i wdrażania Visual Studio. Niestety, nie ma opcji, aby zmodyfikować ścieżkę klucza z programu Visual Studio. Dostępne są następujące opcje:

  • zmodyfikować MSI ręcznie przy użyciu Orca (to nie jest dobrym rozwiązaniem, ponieważ jest to instrukcja krok)
  • napisać skrypt, np przy użyciu VBScript załatać plik MSI
  • przenieść się do bardziej zaawansowany system, który daje większą kontrolę takich jak WiX lub NSIS
+0

masz rację. Usunąłem niektóre pliki ustawień tymczasowych (pliki wsadowe i pliki sql). Muszę znaleźć sposób, aby tego uniknąć. dzięki – 5YrsLaterDBA

+0

@ 5YrsLaterDBA: Ponieważ twoja konfiguracja wydaje się już dość skomplikowana, powinieneś zdecydowanie rzucić okiem na inne sposoby niż VS do tworzenia konfiguracji. W każdym razie projekty konfiguracji VS umrą w przyszłości. Jeśli korzystasz z VS 2010, możesz również wypróbować InstallShield LE. –

+0

Niestety projekty instalacji VS (VDPROJ) nie mają możliwości kontrolowania plików kluczy (wszystkie zasoby, w tym klucze rejestru, są pojedynczym plikiem klucza dla pojedynczego komponentu) i nie można wyłączyć reklamowanych skrótów. Musisz być naprawdę dobrym Mistrzem Jedi MSI, aby wiedzieć, jak poradzić sobie z problemem. Sugeruję spojrzenie na InstallShield 2010LE lub WiX. VDPROJ zmarł przed wieloma laty. –

1

Czy skrót oznacza aplikację lub konfigurację? Jeśli wskażesz na swoją konfigurację i zmienisz ją na swoją aplikację, czy problem zniknie?

1

Brzmi jak system uważa, że ​​instalacja została uszkodzona i jest automatycznie próby naprawy instalacji, .Wszystko w dziennikach zdarzeń (poszukaj źródła MsiInstaller w dzienniku zdarzeń aplikacji).

Czy tworzyłeś wiele kopii?

6

Otwórz ręcznie MSI, używając Orca. Dodaj następujący rekord do tabeli właściwości (Property, wartość) bez cudzysłowów:

Property = „DISABLEADVTSHORTCUTS” Value = „1”

Można również skrypty i uruchom jako część imprezy po kompilacji .

+1

idealne do konfiguracji vs2005. 10x – parzival

0

Miał ten sam problem. W moim przypadku okazało się, że problem dotyczył pól "Producent" i "Nazwa produktu" we właściwościach Projektu Deoplyment. Musi być taki sam, jak struktura folderów wskazywana przez Twój skrót, w przeciwnym razie pojawi się komunikat "The resource" C: \ Program Files (x86) [Producent] [ProductName] \ 'nie istnieje' error inside Podgląd zdarzeń.

1

Dzieje się tak, gdy aplikacja usuwa plik wdrożony podczas instalacji. Automatyczna naprawa jest aktywowana, a więc pojawia się ekran instalacji.

+0

To zadziałało dla mnie, dzięki! Miałem przestarzały plik "config.txt" zapomniany w konfiguracji, ale ten plik jest usuwany i zastępowany przez plik "config.xml" po uruchomieniu aplikacji. Usunięcie pliku z Instalatora było wystarczające. – Elo

Powiązane problemy