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.