Wie erstelle ich ein Installationsprogramm für einen Windows-Dienst, den ich mit Visual Studio erstellt habe?
152
Wie erstelle ich ein Installationsprogramm für einen Windows-Dienst, den ich mit Visual Studio erstellt habe?
Antworten:
Gehen Sie im Serviceprojekt wie folgt vor:
Jetzt müssen Sie ein Setup-Projekt erstellen. Verwenden Sie am besten den Setup-Assistenten.
Klicken Sie mit der rechten Maustaste auf Ihre Lösung und fügen Sie ein neues Projekt hinzu: Hinzufügen> Neues Projekt> Setup- und Bereitstellungsprojekte> Setup-Assistent
ein. Dies kann für verschiedene Versionen von Visual Studio leicht variieren. b. Visual Studio 2010 befindet sich unter: Vorlagen installieren> Andere Projekttypen> Setup und Bereitstellung> Visual Studio Installer
Wählen Sie im zweiten Schritt "Setup für eine Windows-Anwendung erstellen".
Wählen Sie im 3. Schritt "Primäre Ausgabe von ...".
Klicken Sie sich durch, um fertig zu werden.
Bearbeiten Sie als Nächstes Ihr Installationsprogramm, um sicherzustellen, dass die richtige Ausgabe enthalten ist.
Sie können den Namen der Installationsausgabe bearbeiten, indem Sie mit der rechten Maustaste auf das Installationsprojekt in Ihrer Lösung klicken und Eigenschaften auswählen. Ändern Sie den Namen der Ausgabedatei: in einen beliebigen Wert. Durch die Auswahl als auch das Installationsprojekt und suchen Sie in den Eigenschaften - Fenster, können Sie bearbeiten die
Product Name
,Title
,Manufacturer
usw ...Erstellen Sie als Nächstes Ihr Installationsprogramm, und es werden eine MSI und eine setup.exe erstellt. Wählen Sie aus, was Sie zum Bereitstellen Ihres Dienstes verwenden möchten.
quelle
Service name contains invalid characters, is empty, or is too long (max length = 80)
beim Hinzufügen des Installationsprogramms eine Fehlermeldung angezeigt wird, klicken Sie erneut mit der rechten Maustaste in den grauen Bereich, gehen Sie zu Eigenschaften und stellen Sie sicher, dass der Wert für den Dienstnamen festgelegt ist.Ich folge Kelseys ersten Schritten, um die Installationsklassen zu meinem Serviceprojekt hinzuzufügen, aber anstatt ein MSI- oder setup.exe-Installationsprogramm zu erstellen, mache ich den Service selbstinstallierend / deinstallierend. Hier ist ein Beispielcode von einem meiner Dienste, den Sie als Ausgangspunkt verwenden können.
quelle
Windows Application
und Startobjekt :(none)
. Ich musste den Ausgabetyp ändernConsole Application
und mein Startobjekt festlegen, zmyservice.Program
. Wenn es Konsequenzen gibt, von denen ich nichts weiß, teilen Sie uns dies bitte mit.Weder Kelsey- noch Brendan-Lösungen funktionieren für mich in der Visual Studio 2015-Community nicht.
Hier sind meine kurzen Schritte zum Erstellen eines Dienstes mit dem Installationsprogramm:
->
New->
ProjectDoppelklicken Sie auf serviceInstaller1. Visual Studio erstellt ein
serviceInstaller1_AfterInstall
Ereignis. Code schreiben:Lösung erstellen. Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie "Ordner im Datei-Explorer öffnen". Gehen Sie zu bin \ Debug .
Erstellen Sie install.bat mit dem folgenden Skript:
/i
in/u
)quelle
Für VS2017 müssen Sie die VS-Erweiterung "Microsoft Visual Studio 2017 Installer Projects" hinzufügen. Dadurch erhalten Sie zusätzliche Visual Studio Installer-Projektvorlagen. https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.MicrosoftVisualStudio2017InstallerProjects#overview
Um den Windows-Dienst zu installieren, können Sie ein neues Projekt vom Typ Setup-Assistent hinzufügen und die Schritte aus Kelseys Antwort https://stackoverflow.com/a/9021107/1040040 ausführen
quelle
InstallUtil-Klassen (ServiceInstaller) werden von der Windows Installer-Community als Anti-Pattern angesehen. Es ist eine fragile, außer Betrieb befindliche Neuerfindung des Rads, die die Tatsache ignoriert, dass Windows Installer integrierte Unterstützung für Dienste bietet.
Visual Studio-Bereitstellungsprojekte (auch in der nächsten Version von Visual Studio nicht hoch angesehen und veraltet) bieten keine native Unterstützung für Dienste. Sie können jedoch Zusammenführungsmodule verbrauchen. Ich würde mir diesen Blog-Artikel ansehen, um zu verstehen, wie ein Zusammenführungsmodul mit Windows Installer XML erstellt wird, das den Dienst ausdrücken und dieses Zusammenführungsmodul dann in Ihrer VDPROJ-Lösung verwenden kann.
Erweitern von InstallShield mithilfe von Windows Installer XML - Windows Services
IsWiX Windows Service Tutorial
IsWiX Windows Service Video
quelle