CLI를 사용하여 Windows용 패키지되지 않은 .NET MAUI 앱 게시
Windows용 .NET 다중 플랫폼 앱 UI(.NET MAUI) 앱을 배포할 때 앱 및 해당 종속성을 다른 시스템에 배포할 폴더에 게시할 수 있습니다.
프로젝트 빌드 설정 구성
프로젝트 파일에 다음 <PropertyGroup>
노드를 추가합니다. 이 속성 그룹은 대상 프레임워크가 Windows이고 구성이 로 Release
설정된 경우에만 처리됩니다. 이 구성 섹션은 빌드 또는 게시 모드에서 Release
실행할 때마다 실행됩니다.
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows' and '$(RuntimeIdentifierOverride)' != ''">
<RuntimeIdentifier>$(RuntimeIdentifierOverride)</RuntimeIdentifier>
</PropertyGroup>
이 <PropertyGroup>
예제에서는 Windows 앱 SDK 버그를 해결하는 데 필요합니다. 버그에 대한 자세한 내용은 WindowsAppSDK 문제 #3337을 참조하세요.
게시
앱을 게시하려면 VS 2022 터미널용 개발자 명령 프롬프트를 열고 .NET MAUI 앱 프로젝트의 폴더로 이동합니다. dotnet publish
다음 매개 변수를 제공하여 명령을 실행합니다.
매개 변수 | 값 |
---|---|
-f |
대상 프레임워크입니다 net8.0-windows{version} . 이 값은 다음과 같은 net8.0-windows10.0.19041.0 Windows TFM입니다. 이 값이 .csproj 파일의 <TargetFrameworks> 노드 값과 동일한지 확인합니다. |
-c |
빌드 구성입니다 Release . |
-p:RuntimeIdentifierOverride=win10-x64 - 또는 - -p:RuntimeIdentifierOverride=win10-x86 |
WindowsAppSDK 문제 #3337에 자세히 설명된 버그를 방지합니다. 대상 플랫폼에 -x64 따라 매개 변수의 버전 또는 -x86 버전을 선택합니다. |
-p:WindowsPackageType |
패키지 형식으로, 패키지되지 않은 앱용입니다 None . |
-p:WindowsAppSDKSelfContained |
프레임워크 종속 또는 자체 포함일 수 있는 앱의 배포 모드입니다. 이 값은 자체 포함 앱에 대한 값이어야 true 합니다. 프레임워크 종속 앱 및 자체 포함 앱에 대한 자세한 내용은 Windows 앱 SDK 배포 개요를 참조하세요. |
Warning
.NET MAUI 솔루션을 게시하려고 하면 명령이 솔루션의 dotnet publish
각 프로젝트를 개별적으로 게시하려고 시도하므로 솔루션에 다른 프로젝트 형식을 추가한 경우 문제가 발생할 수 있습니다. 따라서 명령의 dotnet publish
범위를 .NET MAUI 앱 프로젝트로 지정해야 합니다.
예시:
dotnet publish -f net8.0-windows10.0.19041.0 -c Release -p:RuntimeIdentifierOverride=win10-x64 -p:WindowsPackageType=None
참고 항목
.NET 8 dotnet publish
에서 명령은 기본적으로 구성으로 Release
설정됩니다. 따라서 명령줄에서 빌드 구성을 생략할 수 있습니다.
게시는 실행 파일을 bin\Release\net8.0-windows10.0.19041.0\win10-x64\publish 폴더에 복사하여 앱을 빌드합니다. 이 폴더에는 exe 파일이 있으며 빌드된 앱입니다. 이 앱을 시작하거나 전체 폴더를 다른 컴퓨터에 복사하여 시작할 수 있습니다.
패키지된 앱과 중요한 차이점은 폴더에 .NET 런타임이 포함되지 않는다는 것입니다. 즉, 앱은 결국 앱을 실행할 머신에 .NET 런타임을 먼저 설치해야 합니다. 앱에 모든 런타임 구성 요소 -p:WindowsAppSDKSelfContained
도 포함되도록 게시할 때 인수를 제공할 수 있습니다. 예시:
dotnet publish -f net8.0-windows10.0.19041.0 -c Release -p:RuntimeIdentifierOverride=win10-x64 -p:WindowsPackageType=None -p:WindowsAppSDKSelfContained=true
명령에 대한 자세한 내용은 dotnet publish를 dotnet publish
참조하세요.
.NET MAUI