Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Při vytváření služby Windows v .NET (nezaměňovat se službou Windows v rozhraní .NET Framework) můžete chtít vytvořit instalační program pro vaši službu. Bez instalačního programu by uživatelé museli vědět, jak nainstalovat a nakonfigurovat vaši službu. Instalační program seskupí spustitelné soubory vaší aplikace a zpřístupní přizpůsobitelné uživatelské prostředí instalace. Tento kurz je pokračováním kurzu Vytvoření služby systému Windows . Ukazuje, jak vytvořit instalační program pro službu windows .NET.
V tomto kurzu se naučíte:
- Nainstalujte rozšíření Projektů instalačního programu sady Visual Studio.
- Vytvořte projekt nastavení.
- Aktualizujte existující projekt pracovního procesu .NET tak, aby podporoval instalaci.
- Automatizujte instalaci a odinstalaci pomocí Správce řízení služeb systému Windows.
Požadavky
- Očekává se, že jste dokončili kurz Vytvoření služby systému Windows nebo jste připraveni naklonovat ukázkové úložiště.
- Sada .NET 8.0 SDK nebo novější
- Operační systém Windows
- Integrované vývojové prostředí .NET (IDE)
- Neváhejte používat visual studio
- Existující služba .NET pro Windows
Instalace závislostí pro nástroje
Začněte instalací sady nástrojů Wix. Sada nástrojů Wix Je sada nástrojů, které sestavují instalační balíčky systému Windows ze zdrojového kódu XML.
dotnet tool install --global wix
Dále nainstalujte rozšíření pro VS2022, HeatWave. Po instalaci restartujte Visual Studio a uvidíte dostupné nové šablony projektů.
Získání existujícího projektu
Tento kurz je založený na aplikaci vytvořené v rámci kurzu Vytvoření služby Windows pomocí služby BackgroundService . Ukázkové úložiště můžete naklonovat nebo použít aplikaci, kterou jste vytvořili v předchozím kurzu.
Návod
Zdrojový kód "Pracovní procesy v .NET" je k dispozici v prohlížeči ukázek ke stažení. Další informace najdete v tématu Prohlédněte si ukázky kódu: pracovníky v .NET.
Otevřete řešení v sadě Visual Studio a výběrem klávesy F5 ověřte, že se aplikace sestaví a spustí podle očekávání. Stisknutím kláves Ctrl+C aplikaci zastavte.
Přidání nového projektu instalace
Pokud chcete přidat nový projekt nastavení Wixu, klikněte pravým tlačítkem na řešení v Průzkumníku řešení a vyberte Přidat > nový projekt:
V dostupných šablonách vyberte balíček MSI (Wix v4) a pak vyberte Další. Zadejte požadovaný název a umístění a pak vyberte Vytvořit.
Konfigurace projektu instalačního programu
Chcete-li nakonfigurovat projekt nastavení, musíte nejprve přidat odkaz na App.WindowsService
projekt. V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt nastavení a pak vyberte Přidat > odkaz na projekt.
Šablona obsahuje ukázkové komponenty a lokalizační soubory. Odstraňte tyto soubory a ponechejte pouze soubor Package.wxs . Projekt by teď měl obsahovat ProjectReference
prvek podobný následujícímu:
<Project Sdk="WixToolset.Sdk/4.0.0">
<ItemGroup>
<ProjectReference Include="..\App.WindowsService.csproj" />
</ItemGroup>
</Project>
Po přidání odkazu na projekt nakonfigurujte soubor Package.wxs . Otevřete soubor v editoru a nahraďte jeho obsah následujícím kódem:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Define the variables in "$(var.*) expressions" -->
<?define Name = ".NET Joke Service" ?>
<?define Manufacturer = "Microsoft" ?>
<?define Version = "1.0.0.0" ?>
<?define UpgradeCode = "9ED3FF33-8718-444E-B44B-69A2344B7E98" ?>
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<Package Name="$(Name)"
Manufacturer="$(Manufacturer)"
Version="$(Version)"
UpgradeCode="$(var.UpgradeCode)"
Compressed="true">
<!-- Allow upgrades and prevent downgrades -->
<MajorUpgrade DowngradeErrorMessage="A later version of [ProductName] is already installed. Setup will now exit." />
<!-- Define the directory structure -->
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFiles64Folder">
<!-- Create a folder inside program files -->
<Directory Id="ROOTDIRECTORY" Name="$(var.Manufacturer)">
<!-- Create a folder within the parent folder given the name -->
<Directory Id="INSTALLFOLDER" Name="$(Name)" />
</Directory>
</Directory>
</Directory>
<!-- The files inside this DirectoryRef are linked to
the App.WindowsService directory via INSTALLFOLDER -->
<DirectoryRef Id="INSTALLFOLDER">
<!-- Create a single component which is the App.WindowsService.exe file -->
<Component Id="ServiceExecutable" Bitness="always64">
<!-- Copies the App.WindowsService.exe file using the
project reference preprocessor variables -->
<File Id="App.WindowsService.exe"
Source="$(var.App.WindowsService.TargetDir)publish\App.WindowsService.exe"
KeyPath="true" />
<!-- Remove all files from the INSTALLFOLDER on uninstall -->
<RemoveFile Id="ALLFILES" Name="*.*" On="both" />
<!-- Tell WiX to install the Service -->
<ServiceInstall Id="ServiceInstaller"
Type="ownProcess"
Name="App.WindowsService"
DisplayName="$(Name)"
Description="A joke service that periodically logs nerdy humor."
Start="auto"
ErrorControl="normal" />
<!-- Tell WiX to start the Service -->
<ServiceControl Id="StartService"
Start="install"
Stop="both"
Remove="uninstall"
Name="App.WindowsService"
Wait="true" />
</Component>
</DirectoryRef>
<!-- Tell WiX to install the files -->
<Feature Id="Service" Title="App.WindowsService Setup" Level="1">
<ComponentRef Id="ServiceExecutable" />
</Feature>
</Package>
</Wix>
Při sestavování projektu je výstupem soubor MSI, který lze použít k instalaci a odinstalaci služby.
Test instalace
Pokud chcete instalační program otestovat, publikujte projekt App.WindowsService . V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt a pak vyberte Publikovat. Po publikování s profilem, který jste vytvořili v předchozím kurzu, bude spustitelný soubor v adresáři publikování. Dále sestavíte projekt instalace a spustíte instalační program.
Instalaci musíte spustit jako správce. Uděláte to tak, že kliknete pravým tlačítkem myši na soubor MSI a pak vyberete Spustit jako správce.
Po instalaci služby můžete službu otevřít a zobrazit spuštěnou službu. K odinstalaci služby použijte funkci Přidat nebo odebrat programy systému Windows k volání instalačního programu.