Sdílet prostřednictvím


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.