다음을 통해 공유


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.0Windows 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 publishdotnet publish 참조하세요.