Jak utworzyć projekt InstallShield LE, aby zainstalować usługę systemu Windows?


104

Ściągnąłem Visual Studio 2012 wczoraj, kiedy został wydany w MSDN. Zauważyłem, że kilka typów projektów, które mieliśmy w 2010 roku, zniknęło lub się zmieniło. Największą różnicą dla mnie w tej chwili jest usunięcie projektu Instalatora Windows. Teraz jesteśmy zmuszeni do korzystania z InstallShield LE (edycja limitowana). Problem polega na tym, że piszę mnóstwo usług Windows i nie widzę, jak skonfigurować InstallShield LE. Wygląda na to, że my (moja firma) będziemy musieli zainwestować w licencje na edycję profesjonalną.

Czy ktoś znalazł sposób na zainstalowanie usług w InstallShield LE? Korzystając z projektu Instalatora Windows, wystarczy ustawić akcje niestandardowe.


1
Używanie niestandardowych akcji InstallUtil w projektach wdrożeniowych programu Visual Studio było w rzeczywistości bardzo kiepską praktyką. Po prostu wymyślenie na nowo koła za pomocą delikatnego rozwiązania, ponieważ bazowe narzędzie autorskie nie ujawnia natywnych możliwości MSI.
— Christopher Painter,

Odpowiedzi:


161

W przypadku programu Visual Studio 2012 i InstallShield LE wykonaj następujące czynności:

  • Uruchom asystenta projektu InstallShield i dodaj podstawowe dane wyjściowe usługi do sekcji Pliki aplikacji.
  • Po zakończeniu pracy z asystentem projektu kliknij dwukrotnie element „Pliki” w drugim kroku konfiguracji projektu.

Sekcja plików

  • Kliknij prawym przyciskiem myszy podstawowe wyjście usługi i przejdź do właściwości.
  • Kliknij kartę „Ustawienia COM i .NET” i zaznacz pole wyboru „Klasa instalatora”. wprowadź opis obrazu tutaj
  • Kliknij OK

Teraz, gdy utworzysz i uruchomisz instalację, Twoja usługa pojawi się w przystawce Usługi systemu Windows.

Należy zauważyć, że zakłada się, że do projektu usługi dodano „Instalatora projektu” (kliknij prawym przyciskiem myszy arkusz projektu usługi i kliknij opcję „Dodaj instalator”). Mogę potwierdzić, że działa to na Windows 8 z Visual Studio 2012 / InstallShield LE.


Ok, działa to również w VS 2010 i Win 7 Pro. Nie próbowałem jeszcze tego w VS 2012, ale to powinno wystarczyć. Dzięki.
— fizch

3
Czy jest możliwe wyświetlenie okna dialogowego z pytaniem użytkownika o parametry połączenia z bazą danych (serwer, nazwa uwierzytelniania i nazwa bazy danych) i zaktualizowanie pliku konfiguracyjnego usługi systemu Windows przy użyciu programu InstallShield LE?
— Adelia Benalius

2
To całkiem niezły przewodnik: c-sharpcorner.com/uploadfile/cb88b2/… .
— Jonty

1

1
Ta opcja nie powoduje uruchomienia usługi po instalacji. Aby zainstalować usługę i uruchomić ją, w eksploratorze rozwiązań wybierz 3. Konfiguruj system docelowy> Usługi .
— Rajeev

24

Niedawno zainstalowałem VS 2012 z Install Shield LE. Na początku otrzymywałem wewnętrzny błąd serwera ISEXP -5036 po kompilacji (było to po skonfigurowaniu projektu ISLE i uruchomieniu programu Install Shield Project Assistant). W końcu dowiedziałem się, że próbował utworzyć plik MSI na nośniku typu DVD-5, co jest przyczyną niepowodzenia. Z jakiegoś powodu, tworzenie rozwiązania ponownie od zera w jakiś sposób rozpoznaje kompilację tylko do typów nośników CD_ROM i SingleImage, które działają.

W każdym razie, aby naprawić błąd 5036, kliknij kartę Kompilacja w VS 2012 (górne menu), wybierz menedżera konfiguracji i powinieneś zobaczyć, że twój plik instalacyjny IS jest wybrany w konfiguracji DVD-5. Zmień to na CD_ROM i kliknij zamknij. Po zbudowaniu / przebudowie zakończy się bez błędu IS 5036.

wprowadź opis obrazu tutaj


2
To może nie mieć nic wspólnego z jego problemem, ale rozwiązało mój. Dziękuję Ci! +1
— David

Ten sam problem dla mnie od samego początku, domyślna instalacja miała DVD-5 jako konfigurację i instalacja nie powiodła się. Z twoją wskazówką zmieniłem go na pojedynczy obraz i zbudowałem bez problemu!
— Nick Bork

Wybrano DVD-5. Prosta, ale świetna odpowiedź
— beaumondo

6

Podczas korzystania z pola wyboru klasy instalatora może działać w niektórych instancjach, może wystąpić następujący błąd:

Błąd 1001 Podana usługa już istnieje

Oto fragment tego łącza pokazujący, jak rozwiązać ten problem:

W przypadku błędu: Błąd 1001 Podana usługa już istnieje

Ten błąd wystąpi, jeśli składnik instalujący usługę .NET jest niepoprawnie skonfigurowany z opcją „.NET Installer Class” ustawioną na Tak. Metodą zainstalowania usługi .NET jest użycie widoku Składnik \ Ustawienia zaawansowane \ Usługi, a nie ustawienie „.NET Installer Class”. Definiowanie definicji w widoku Składnik \ Ustawienia zaawansowane \ Usługi powoduje utworzenie wpisów w tabelach ServiceControl i ServiceInstall Instalatora Windows. Te wpisy są używane przez akcję Instalatora Windows „InstallServices” w celu zainstalowania usługi.


czy mógłbyś pomóc i wyjaśnić to .... Widok Component \ Ustawienia zaawansowane \ Usługi "można znaleźć ??
— pithhelmet

jest w premierowej edycji instalatora (ffs! microsoft, dlaczego wybrałeś typ projektu instalacji!) .. Jeśli masz wersję premier. community.flexerasoftware.com/…
— Paul Hutchinson

Zauważyłem, że jest to związane z długością nazwy projektu instalacyjnego, tj. Zmień nazwę projektu na mniejszą, np. „Instaluj” lub „Instaluj”.
— Jonty

4

Jeśli Twój projekt to .NET, spróbuj, a następnie możesz użyć klasy ServiceProcessInstaller z InstallShield LE.

Aby uruchomić program InstallShield, musisz przejść do drzewa "plików" programu InstallShield i kliknąć plik prawym przyciskiem myszy. Następnie zaznacz pole wyboru „Klasa instalatora” w zakładce „Ustawienia COM i .NET”.

Uruchomiłem go, ale miałem problemy z niektórymi systemami operacyjnymi, takimi jak Windows 2008R2. Twój przebieg może się różnić.

Oto przykład: http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C


1
Przepraszam. Nie widziałem tego do dzisiaj. Wygląda na to, że jest to prawie ta sama odpowiedź, którą zaakceptowałem. Dam mu +1.
— fizch

4

Miałem z tym różne problemy.

Następująco.

  1. Pobieranie programu InstallShield trwa wieki
  2. proces rejestracji jest uciążliwy.
  3. opcje konfiguracji są zagmatwane i nadmiernie złożone.
  4. akceptowanym rozwiązaniem w tym wątku jest hack i nie zawsze działa - patrz 1001 w dokumentacji - zasadniczo musisz przedostać się przez paywall, aby uzyskać odpowiednie opcje konfiguracji, aby zainstalować usługę Windows.

Rozwiązaniem dla mnie, jak wspomniano w innym miejscu - było porzucenie InstallShield

wprowadź opis obrazu tutaj

Od tego momentu bardzo proste.

Edycja: aktualizacja - zainstaluj najnowszą wersję stąd https://wix.codeplex.com/releases/view/115492 dla vs 2013/2015


3

Projekty instalacyjne programu Visual Studio są ponownie w programie VS 2013 jako rozszerzenie programu Visual Studio.

https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d

Zaktualizuj swoje rozwiązanie i projekty do VS 2013. Jeśli nadal korzystasz z VS 2010, prawdopodobnie lepiej będzie, jeśli dokonasz aktualizacji bezpośrednio do VS 2013.

Z mojego doświadczenia w zakresie instalacji Installationheild LE wynika, że ​​jest on bardzo dziwaczny, ale kiedy już wymyślisz sztuczki, jest łatwiejszy w użyciu. Myślę jednak, że edycja limitowana to sposób firmy Microsoft i Flexera na sprzedaż w pełni funkcjonalnej edycji. Innymi słowy, najpierw płacimy Microsoftowi dużo pieniędzy za Visual Studio, a potem ich partner (w zbrodni) więcej za Instalacje. Zła strategia, która nie zadziałała, ponieważ musieli przywrócić projekty konfiguracji w VS 2013.


2

Pisałem na ten temat:

Rozszerzanie programu InstallShield przy użyciu programu Windows Installer XML - usługi Windows

Zasadniczo tworzysz moduł scalający za pomocą WiX w celu hermetyzacji usługi, a następnie dodajesz go do projektu installshield. (Pamiętaj, aby połączyć się z katalogiem INSTALLDIR, aby upewnić się, że plik trafia tam, gdzie się spodziewasz). Twórz i testuj na maszynie wirtualnej. Bułka z masłem.


Kolejna technologia do nauczenia? Aż do wczoraj nie słyszałem o WIX. Nadal nic o tym nie wiem. Wygląda na to, że cały ten proces staje się coraz trudniejszy w przypadku czegoś, co wymagało zaledwie kilku kliknięć.
— fizch

URUCHOMIENIE instalatora zajmuje tylko kilka kliknięć . Tworzenie ich zawsze wymagało znacznie więcej wysiłku.
— Christopher Painter,

Wystarczyło tylko kilka kliknięć, aby skonfigurować instalator. Musisz wpisać tytuł, producenta itd., Ale nie trzeba było tworzyć całego dokumentu xml. Co możesz mi powiedzieć o WIX? Mogę powiedzieć, że oczywiście dużo o tym wiesz. Co to jest? Skąd to mam? Jak tego używam? Itd ...
— fizch

Piszę instalatory od 16 lat i tylko proste instalacje z pojedynczym plikiem EXE i skrótem zabierają mi „zaledwie kilka kliknięć” do autora. Tak czy inaczej WiX można znaleźć w CodePlex i jest książka opublikowana na ten temat. Podstawową technologią jest Instalator Windows, a dokumentację tę można znaleźć w Platform SDK oraz w witrynie MSDN.
— Christopher Painter,

5
Poważnie "jest książka opublikowana na ten temat ... w SDK". ?? Chris, próbujemy tylko przenieść nasze rozwiązania z 2010 roku do 2012, a instalacja / konfiguracja zatrzymuje nas na naszych torach. MS, przywróć VS Setup / Installer visualstudio.uservoice.com/forums/121579-visual-studio/ ...
— JimSTAT


2

Po prostu mam problemy ze znalezieniem miejsca dodania instalatora, o którym mowa w odpowiedzi. A więc oto jak.

Kliknij dwukrotnie klasę usług w ramach projektu usługi systemu Windows Pusty ekran z tekstem „Aby dodać komponenty do swojej klasy, przeciągnij je z przybornika i użyj okna Właściwości, aby ustawić ich właściwości…” Kliknij prawym przyciskiem myszy w dowolnym miejscu oprócz łączy i wybierz „Dodaj instalator”

do zobaczenia


0

Pamiętaj, że wszystkie powyższe wyjaśnienia nie pomogą Ci, jeśli planujesz później aktualizację tej konfiguracji. InstallShiled LE nie może zatrzymać działającej usługi podczas aktualizacji. Nie możesz tego zrobić również z poziomu Instalatora usługi Windows -> Zdarzenie BeforeInstall.


0

Chciałem to tutaj umieścić;

W VS 2015, robiąc to, wielokrotnie napotykałem błąd 1001 podczas instalacji.

Odpowiedź na tej stronie wyjaśnia, że ​​w nowszych wersjach (wcześniejszych niż 2012) najwyraźniej musisz wyraźnie pozostawić opcję klasy instalatora niezaznaczoną , a następnie dodać usługę systemu Windows w sekcji Usługi w kroku 3 projektu instalatora:

Błąd 1001 podczas instalowania niestandardowej usługi systemu Windows

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.