Uno 프로젝트에서 참조 NuGet 패키지 업데이트 후 컴파일 실패 시

우노 프로젝트에서 패키지 업데이트 후 다음과 같은 오류와 함께 컴파일이 실패할 수 있습니다.

error : This version of WindowsAppSDK requires .NET 6+ and WinRT.Runtime.dll version 2.0 or greater.
error :     Please update to .NET SDK 6.0.109, 6.0.304 or 6.0.401 (or later).
error :     Or add a temporary Microsoft.Windows.SDK.NET.Ref reference of version 10.0.*.27 or later.
error :     For example,
error :         <PropertyGroup>
error :             <WindowsSdkPackageVersion>10.0.<Target Windows SDK Build Number>.27</WindowsSdkPackageVersion>
error :         </PropertyGroup>

그런데 오류 메시지가 그다지 도움이 되지 않습니다.

힌트는 Windows 프로젝트 설정 파일(csproj)에 있습니다.

    <!--
		If you encounter this error message:
		
			error NETSDK1148: A referenced assembly was compiled using a newer version of Microsoft.Windows.SDK.NET.dll. Please update to a newer .NET SDK in order to reference this assembly.

		This means that the two packages below must be aligned with the "build" version number of
		the "Microsoft.Windows.SDK.BuildTools" package above, and the "revision" version number
		must be the highest found in https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref.
		-->
    <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" RuntimeFrameworkVersion="10.0.22000.27" />
    <FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" TargetingPackVersion="10.0.22000.27" />

동일한 오류 메시지는 아니지만 이곳을 보면 빌드 번호가 예를들어 2262122000으로 맞지 않습니다. 가이드대로 https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref의 동일 빌드의 최신 버젼인 10.0.22621.28로 변경합니다.

이때 Windows 프로젝트 뿐만 아니라 우노 프로젝트에도 (예를들어 프로젝트가 App일 경우 App.Windows와 App 프로젝트 모두) Microsoft.Windows.SDK.NET.Ref 버젼을 맞춰주어야 합니다.

...
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.755" />
                                                                           ~~~~~
...
<FrameworkReference Update="Microsoft.Windows.SDK.NET.Ref" RuntimeFrameworkVersion="10.0.22621.28" />
                                                                                         ~~~~~
...

이후 정상 컴파일 됨을 확인할 수 있습니다.

3개의 좋아요