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
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
Czy skrót oznacza aplikację lub konfigurację? Jeśli wskażesz na swoją konfigurację i zmienisz ją na swoją aplikację, czy problem zniknie?
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?
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 .
idealne do konfiguracji vs2005. 10x – parzival
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ń.
Dzieje się tak, gdy aplikacja usuwa plik wdrożony podczas instalacji. Automatyczna naprawa jest aktywowana, a więc pojawia się ekran instalacji.
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
masz rację. Usunąłem niektóre pliki ustawień tymczasowych (pliki wsadowe i pliki sql). Muszę znaleźć sposób, aby tego uniknąć. dzięki – 5YrsLaterDBA
@ 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. –
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. –