Publikowanie rozpakowanej aplikacji .NET MAUI dla systemu Windows przy użyciu interfejsu wiersza polecenia
Podczas dystrybucji aplikacji interfejsu użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI) dla systemu Windows można opublikować aplikację i jej zależności w folderze na potrzeby wdrożenia w innym systemie.
Konfigurowanie ustawień kompilacji projektu
Dodaj następujący <PropertyGroup>
węzeł do pliku projektu. Ta grupa właściwości jest przetwarzana tylko wtedy, gdy platforma docelowa to Windows, a konfiguracja jest ustawiona na Release
wartość . Ta sekcja konfiguracji jest uruchamiana za każdym razem, gdy kompilacja lub publikowanie w Release
trybie.
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows' and '$(RuntimeIdentifierOverride)' != ''">
<RuntimeIdentifier>$(RuntimeIdentifierOverride)</RuntimeIdentifier>
</PropertyGroup>
W <PropertyGroup>
tym przykładzie wymagane jest obejście usterki w zestawie SDK aplikacji systemu Windows. Aby uzyskać więcej informacji na temat usterki, zobacz Problem z zestawem WindowsAppSDK #3337.
Publikowanie
Aby opublikować aplikację, otwórz terminal developer command prompt for VS 2022 (Wiersz polecenia dla deweloperów dla programu VS 2022 ) i przejdź do folderu projektu aplikacji .NET MAUI. dotnet publish
Uruchom polecenie , podając następujące parametry:
Parametr | Wartość |
---|---|
-f |
Struktura docelowa, czyli net8.0-windows{version} . Ta wartość jest programem TFM systemu Windows, takim jak net8.0-windows10.0.19041.0 . Upewnij się, że ta wartość jest identyczna z wartością <TargetFrameworks> w węźle w pliku csproj . |
-c |
Konfiguracja kompilacji, czyli Release . |
-p:RuntimeIdentifierOverride=win10-x64 - lub - -p:RuntimeIdentifierOverride=win10-x86 |
Unika usterki szczegółowo opisanej w temacie Problem z zestawem WindowsAppSDK #3337. -x64 Wybierz wersję lub -x86 parametru na podstawie platformy docelowej. |
-p:WindowsPackageType |
Typ pakietu, który jest None przeznaczony dla aplikacji rozpakowanych. |
-p:WindowsAppSDKSelfContained |
Tryb wdrażania aplikacji, który może być zależny od struktury lub samodzielny. Ta wartość powinna dotyczyć true aplikacji samodzielnie zawartych. Aby uzyskać więcej informacji na temat aplikacji zależnych od platformy i aplikacji samodzielnie, zobacz Omówienie wdrażania zestawu SDK aplikacji systemu Windows. |
Ostrzeżenie
Próba opublikowania rozwiązania MAUI platformy .NET spowoduje dotnet publish
, że polecenie podejmie próbę opublikowania każdego projektu w rozwiązaniu osobno, co może powodować problemy podczas dodawania innych typów projektów do rozwiązania. W związku z dotnet publish
tym polecenie powinno być ograniczone do projektu aplikacji .NET MAUI.
Na przykład:
dotnet publish -f net8.0-windows10.0.19041.0 -c Release -p:RuntimeIdentifierOverride=win10-x64 -p:WindowsPackageType=None
Uwaga
W programie .NET 8 dotnet publish
polecenie jest domyślnie ustawione na konfigurację Release
. W związku z tym konfigurację kompilacji można pominąć z wiersza polecenia.
Publikowanie kompiluje aplikację, kopiując plik wykonywalny do folderu bin\Release\net8.0-windows10.0.19041.0\win10-x64\publish . W tym folderze znajduje się plik exe i to jest skompilowana aplikacja. Tę aplikację można uruchomić lub cały folder można skopiować na inną maszynę i uruchomić tam.
Ważną różnicą od spakowanej aplikacji jest to, że nie będzie to obejmować środowiska uruchomieniowego platformy .NET w folderze. Oznacza to, że aplikacja będzie wymagać, aby środowisko uruchomieniowe platformy .NET było najpierw zainstalowane na maszynach, które ostatecznie uruchomią aplikację. Aby upewnić się, że aplikacja zawiera również wszystkie składniki środowiska uruchomieniowego, -p:WindowsAppSDKSelfContained
argument można podać podczas publikowania. Na przykład:
dotnet publish -f net8.0-windows10.0.19041.0 -c Release -p:RuntimeIdentifierOverride=win10-x64 -p:WindowsPackageType=None -p:WindowsAppSDKSelfContained=true
Aby uzyskać więcej informacji o poleceniu dotnet publish
, zobacz dotnet publish (Publikowanie dotnet).