2009-03-02 9 views
5

Czy ktoś może wymienić czynności potrzebne do programowej instalacji aplikacji w systemie Windows. Oprócz kopiowania plików tam, gdzie powinny być, jakie są dodatkowe kroki potrzebne, aby Twoja aplikacja była najwyższej klasy obywatelem w systemie Windows (np. Pojawi się na liście programów, odinstalować listę ... itd.)instrukcje: programowa instalacja w oknach?

Próbowałem google, ale nie miałem szczęścia.

BTW: To jest dla niezarządzanej aplikacji w języku C++ (opracowanej w Qt), więc wolałbym nie włączać architektury .net, jeśli nie muszę.

Odpowiedz

7

myślę tematem do odpowiedzi zobaczysz tutaj jest, że należy użyciu program instalacyjny a nie należy pisać instalatorowi siebie. Użyj jednego z wielu programów instalacyjnych, takich jak Inno Setup, InstallSheild lub cokolwiek innego, co ktoś zaleca.

Jeśli spróbujesz napisać sam instalator, prawdopodobnie zrobisz to źle. To nie jest nieznaczące dla ciebie osobiście. Po prostu jest wiele drobnych szczegółów, które instalator powinien wziąć pod uwagę, i wiele rzeczy, które mogą pójść nie tak, a jeśli chcesz napisać sam instalator, będziesz musiał wszystko naprawić. Oznacza to wiele badań i wiele testów z Twojej strony. Oszczędź sobie kłopotu.

Oprócz kopiowania plików, zadania instalacyjne różnią się w zależności od potrzeb programu. Może musisz umieścić ikonę w menu Start; narzędzie instalatora powinno być w stanie bardzo łatwo to zrobić, automatycznie wypełniając lokalizację instalacji wybraną wcześniej przez klienta w instalacji, a może nawet wybierając odpowiedni język lokalny dla etykiety skrótu.

Może być konieczne utworzenie wpisów rejestru, na przykład dla skojarzeń plików lub licencji. Narzędzie instalatora powinno już mieć łatwy sposób określania kluczy i wartości do utworzenia lub modyfikacji.

Może być konieczne zarejestrowanie serwera COM. Jest to dość powszechna czynność, którą narzędzie instalacyjne prawdopodobnie może określić jako część operacji wykonywanych po pobraniu pliku.

Jeśli istnieją pewne działania, których wybrane przez ciebie narzędzie instalacyjne jeszcze nie zapewnia, narzędzie prawdopodobnie będzie oferować sposób dodawania niestandardowych działań, być może za pośrednictwem języka skryptowego, lub może poprzez połączenie zewnętrznego kodu z biblioteką DLL, którą chcesz napisz, że zostanie dołączony do twojego instalatora. Działania niestandardowe mogą obejmować pobieranie aktualizacji z określonej witryny sieci Web, wysyłanie wiadomości e-mail lub zbieranie informacji o tym, jakie produkty z Twojej firmy są już zainstalowane.

Kilka końcowych rzeczy, które narzędzie Instalator powinien dostarczyć sposoby zastosowanie uaktualnień do istniejącej instalacji oraz sposób deinstalacji program, odkręcając wszystkie te zadania instalacyjne (usuwanie plików, przywracanie kopii zapasowych, wyrejestrowanie Serwery COM itp.).

+0

Twoja odpowiedź wydawała się podsumowywać istotę pozostałych postów. Wielkie dzięki! – JimDaniel

5

Użyłem Inno Setup do spakowania mojego oprogramowania do C++. Jest to bardzo proste w porównaniu do ciężkich rozwiązań, takich jak InstallShield. Wszystko może być zawarte w jednym pliku setup.exe bez tworzenia wszystkich tych szalonych skryptów wsadowych i tak dalej.

Sprawdź to tutaj: http://www.jrsoftware.org/isinfo.php

+0

Podczas korzystania z InnoSetup, upewnij się, że masz GUI Inno Tools; sprawia, że ​​ustawienie skryptu instalacyjnego jest naprawdę łatwe i można uruchomić kompilator, aby zbudować instalację bez konieczności wchodzenia do wiersza polecenia. –

0

Masz już główne etapy. Jednym z pominiętych jest instalacja w menu Start i udostępnienie opcji tworzenia pulpitu i/lub ikony szybkiego uruchamiania.

Zachęcam do zapoznania się z programem instalacyjnym, zgodnie z sugestią Jeremy'ego.

10

Bardzo polecam NSIS. Open Source, bardzo aktywny rozwój i trudno dopasować/pokonać jego rozszerzalność.

Aby dodać program do listy Dodaj/listy programów (lub Programy i funkcje) usuwać, dodawać następujące klucze reg:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAM_NAME] 
"DisplayName"="PROGRAM_NAME" 
"Publisher"="COMPANY_NAME" 
"UninstallString"="PATH_TO_UNINSTALL_PROGRAM" 
"DisplayIcon"="PATH_TO_ICON_FILE" 
"DisplayVersion"="VERSION" 
"InstallLocation"="PATH_TO_INSTALLATION_LOCATION" 
+0

Dlaczego głosowanie w dół? –

+0

Nie wiem. Może ktoś nienawidzi NSIS. –

+0

Może ktoś pomyślał, że tak naprawdę nie odpowiedziałeś na to pytanie, a zamiast tego rozmawiałeś tylko z jednym przykładem. –

1

GUI dla InnoSetup (zalecane) jest Istool

Ty może również użyć instalatora MSI wbudowanego w Visual Studio, jest to bardziej skomplikowana krzywa uczenia się (np. jest to ból), ale jest przydatna, jeśli instalujesz oprogramowanie w środowisku korporacyjnym.

2

Wygląda na to, że trzeba sprawdzić system Instalatora Windows. Jeśli potrzebujesz nitty-gritty, zobacz official documentation. Aby uzyskać wiadomości, przeczytaj artykuł blog instalatora. Ostatecznie, ponieważ jesteś programistą, prawdopodobnie chcesz zbudować instalator, tak jak programista. WiX 3.0 jest moim ulubionym narzędziem - open source code, od Microsoft do bootowania. Zacznij od this tutorial on WiX. To jest dobre.

1

Aby program pojawi się w menu programu Start Trzeba by utworzyć folderu C: \ Documents and Settings \ All Users \ Menu Start \ Programy i dodaje skrót do programu, który chcesz uruchomić. (Jeśli chcesz, aby Twoje zgłoszenie być wymienione bezpośrednio w menu Start lub w podmenu Programy, chcesz umieścić skróty w danym katalogu)

Aby programically utworzyć skrót można użyć IShellLink (See MSDN article).

Ponieważ chcesz odinstalować, to jest o wiele bardziej zaangażowane, ponieważ nie chcesz po prostu usuwać bibliotek DLL lub innych popularnych plików bez sprawdzania zależności. Zalecam użycie generatora instalacji/instalacji, zwłaszcza w dzisiejszych czasach, gdy Vista jest tak nieokiełznana, że ​​trudno jest przetasować własną instalację, jeśli potrzebujesz czegoś więcej niż jednego pliku wykonywalnego i skrótu menu startowego.

Używam generatora konfiguracji Paquet Builder od kilku lat. (Wersja zarejestrowana obejmuje odinstalowanie).

+0

Chociaż zamiast "C: \ Dokumenty i ustawienia \ Wszyscy użytkownicy \ Menu główne \ Programy" należy użyć odpowiedniej zmiennej środowiskowej. –

+0

Dobrze, a konkretniej użyj czegoś takiego jak CSIDL_COMMON_PROGRAMS lub CSIDL_PROGRAMS zobacz: http://msdn.microsoft.com/en-us/library/bb762494.aspx –

+0

I to w zależności od tego, czy używasz jako administrator, a jeśli tak, to jeśli "Robię instalację tylko dla administratora lub dla wszystkich użytkowników. Ale podczas pisania instalatora, drugim zadaniem (po skopiowaniu pliku) powinno być skonfigurowanie wpisu Dodaj/Usuń programy, aby wyczyścić wszystko. – MSalters