Publikování rozbalené aplikace .NET MAUI pro Windows pomocí rozhraní příkazového řádku
Při distribuci aplikace .NET Pro víceplatformní aplikace (.NET MAUI) pro Windows můžete aplikaci a její závislosti publikovat do složky pro nasazení do jiného systému.
Konfigurace nastavení sestavení projektu
Do souboru projektu přidejte následující <PropertyGroup>
uzel. Tato skupina vlastností je zpracována pouze v případě, že cílová architektura je Windows a konfigurace je nastavena na Release
. Tato konfigurační část se spustí při každém sestavení nebo publikování v Release
režimu.
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows' and '$(RuntimeIdentifierOverride)' != ''">
<RuntimeIdentifier>$(RuntimeIdentifierOverride)</RuntimeIdentifier>
</PropertyGroup>
V <PropertyGroup>
tomto příkladu je potřeba vyřešit chybu v sadě Windows App SDK. Další informace o chybě najdete v tématu Problém s WindowsAppSDK č. 3337.
Publikovat
Aplikaci publikujete tak, že otevřete příkazový řádek pro vývojáře pro terminál VS 2022 a přejdete do složky projektu aplikace .NET MAUI. dotnet publish
Spusťte příkaz a zadejte následující parametry:
Parametr | Hodnota |
---|---|
-f |
Cílová architektura, která je net8.0-windows{version} . Tato hodnota je TFM systému Windows, například net8.0-windows10.0.19041.0 . Ujistěte se, že je tato hodnota identická s hodnotou v uzlu v <TargetFrameworks> souboru .csproj . |
-c |
Konfigurace sestavení, což je Release . |
-p:RuntimeIdentifierOverride=win10-x64 - nebo - -p:RuntimeIdentifierOverride=win10-x86 |
Vyhne se chybě popsané v problému s WindowsAppSDK č. 3337. -x64 Zvolte nebo -x86 verzi parametru na základě cílové platformy. |
-p:WindowsPackageType |
Typ balíčku, který je None určený pro rozbalené aplikace. |
-p:WindowsAppSDKSelfContained |
Režim nasazení pro vaši aplikaci, který může být závislý na rozhraní nebo samostatně. Tato hodnota by měla být true určená pro samostatné aplikace. Další informace o aplikacích závislých na architektuře a samostatných aplikacích najdete v tématu Přehled nasazení sady Windows App SDK. |
Upozorňující
Pokus o publikování řešení .NET MAUI způsobí dotnet publish
, že se příkaz pokusí publikovat každý projekt v řešení jednotlivě, což může způsobit problémy při přidání dalších typů projektů do řešení. dotnet publish
Proto by měl být příkaz vymezený na váš projekt aplikace .NET MAUI.
Příklad:
dotnet publish -f net8.0-windows10.0.19041.0 -c Release -p:RuntimeIdentifierOverride=win10-x64 -p:WindowsPackageType=None
Poznámka:
V .NET 8 se příkaz dotnet publish
ve výchozím nastavení nastaví na Release
konfiguraci. Proto je možné konfiguraci sestavení z příkazového řádku vynechat.
Publikování vytvoří aplikaci a zkopíruje spustitelný soubor do složky bin\Release\net8.0-windows10.0.19041.0\win10-x64\publish . V této složce je soubor exe a to je sestavená aplikace. Tuto aplikaci můžete spustit nebo můžete celou složku zkopírovat do jiného počítače a spustit ji tam.
Důležitým rozdílem od zabalené aplikace je to, že do složky nebude obsahovat modul runtime .NET. To znamená, že aplikace bude vyžadovat, aby se nejprve nainstaloval modul runtime .NET na počítačích, které aplikaci nakonec spustí. Pokud chcete zajistit, aby aplikace obsahovala také všechny komponenty modulu runtime, -p:WindowsAppSDKSelfContained
může být argument poskytnut při publikování. Příklad:
dotnet publish -f net8.0-windows10.0.19041.0 -c Release -p:RuntimeIdentifierOverride=win10-x64 -p:WindowsPackageType=None -p:WindowsAppSDKSelfContained=true
Další informace o dotnet publish
příkazu naleznete v tématu dotnet publish.