Tworzenie instalatora usługi systemu Windows
Podczas tworzenia usługi systemu Windows platformy .NET (aby nie pomylić się z usługą .NET Framework dla systemu Windows), możesz utworzyć instalatora dla usługi. Bez instalatora użytkownicy musieliby wiedzieć, jak zainstalować i skonfigurować usługę. Instalator pakuje pliki wykonywalne aplikacji i uwidacznia dostosowywalne środowisko użytkownika instalacji. Ten samouczek jest kontynuacją samouczka Tworzenie usługi systemu Windows. Pokazano w nim, jak utworzyć instalatora dla usługi systemu Windows platformy .NET.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Zainstaluj rozszerzenie Instalator programu Visual Studio Projects.
- Utwórz projekt instalacyjny.
- Zaktualizuj istniejący projekt procesu roboczego platformy .NET, aby obsługiwał instalację.
- Zautomatyzuj instalację i odinstalowywanie za pomocą Menedżera sterowania usługami systemu Windows.
Wymagania wstępne
- Oczekuje się, że ukończysz samouczek Tworzenie usługi systemu Windows lub przygotujesz się do sklonowania przykładowego repozytorium.
- Zestaw .NET 8.0 SDK lub nowszy
- System operacyjny Windows
- Zintegrowane środowisko projektowe (IDE) platformy .NET
- Korzystanie z programu Visual Studio jest bezpłatne
- Istniejąca usługa systemu Windows platformy .NET
Instalowanie zależności narzędzi
Zacznij od zainstalowania zestawu narzędzi Wix. Zestaw narzędzi Wix to zestaw narzędzi, które tworzą pakiety instalacyjne systemu Windows z kodu źródłowego XML.
dotnet tool install --global wix
Następnie zainstaluj rozszerzenie HeatWave dla programu VS2022. Po zainstalowaniu uruchom ponownie program Visual Studio i zobaczysz dostępne nowe szablony projektów.
Pobieranie istniejącego projektu
Ten samouczek jest oparty na aplikacji utworzonej w ramach samouczka Tworzenie usługi systemu Windows przy użyciu usługi BackgroundService . Możesz sklonować przykładowe repozytorium lub użyć aplikacji utworzonej w poprzednim samouczku.
Napiwek
Cały przykładowy kod źródłowy "Pracownicy na platformie .NET" jest dostępny w przeglądarce Samples Browser do pobrania. Aby uzyskać więcej informacji, zobacz Przeglądanie przykładów kodu: Procesy robocze na platformie .NET.
Otwórz rozwiązanie w programie Visual Studio i wybierz pozycję F5 , aby upewnić się, że aplikacja kompiluje i działa zgodnie z oczekiwaniami. Naciśnij klawisze Ctrl+C, aby zatrzymać aplikację.
Dodawanie nowego projektu instalacyjnego
Aby dodać nowy projekt instalacyjny Wix, kliknij prawym przyciskiem myszy rozwiązanie w Eksplorator rozwiązań i wybierz polecenie Dodaj > nowy projekt:
Wybierz pozycję Pakiet MSI (Wix v4) z dostępnych szablonów, a następnie wybierz pozycję Dalej. Podaj żądaną nazwę i lokalizację, a następnie wybierz pozycję Utwórz.
Konfigurowanie projektu instalatora
Aby skonfigurować projekt instalacyjny, należy najpierw dodać odwołanie do App.WindowsService
projektu. Kliknij prawym przyciskiem myszy projekt instalacyjny w Eksplorator rozwiązań, a następnie wybierz polecenie Dodaj > odwołanie do projektu.
Szablon zawiera przykładowe pliki składników i lokalizacji. Usuń te pliki, pozostawiając tylko plik Package.wxs . Projekt powinien teraz zawierać ProjectReference
element podobny do następującego:
<Project Sdk="WixToolset.Sdk/4.0.0">
<ItemGroup>
<ProjectReference Include="..\App.WindowsService.csproj" />
</ItemGroup>
</Project>
Po dodaniu odwołania do projektu skonfiguruj plik Package.wxs . Otwórz plik w edytorze, a następnie zastąp zawartość następującym kodem:
<?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>
Podczas kompilowania projektu dane wyjściowe to plik MSI, którego można użyć do zainstalowania i odinstalowania usługi.
Instalacja testowa
Aby przetestować instalator, opublikuj projekt App.WindowsService . Kliknij prawym przyciskiem myszy projekt w Eksplorator rozwiązań, a następnie wybierz pozycję Publikuj. Po opublikowaniu przy użyciu profilu utworzonego w poprzednim samouczku plik wykonywalny będzie znajdować się w katalogu publikowania. Następnie skompilujesz projekt instalacyjny i uruchomisz instalatora.
Musisz uruchomić instalację jako administrator. W tym celu kliknij prawym przyciskiem myszy plik MSI, a następnie wybierz polecenie Uruchom jako administrator.
Po zainstalowaniu usługi możesz otworzyć usługę, aby wyświetlić uruchomioną usługę. Aby odinstalować usługę, użyj funkcji Dodaj lub Usuń programy systemu Windows, aby wywołać instalatora.
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla