资产文件project.assets.json没有“net6.0-windows10.0.19041.0/win-x64”的目标

Rye*_*ead 6 msbuild nuget .net-core azure-pipelines msix

我有一个使用 MSIX 部署的 .NET 6 Windows 桌面应用程序。

我可以在自己的计算机上运行和调试它,但无法使用 Azure Pipelines YAML 进行构建。

我收到错误:

C:\Program Files\dotnet\sdk\6.0.101\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(267,5):错误NETSDK1047:资产文件'D:\a\1\s\ MyApp\obj\project.assets.json' 没有“net6.0-windows10.0.19041.0/win-x64”的目标。确保恢复已运行并且您已将“net6.0-windows10.0.19041.0”包含在项目的 TargetFrameworks 中。您可能还需要在项目的运行时标识符中包含“win-x64”。

应用程序项目文件:

<TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
<Platforms>x64</Platforms>
Run Code Online (Sandbox Code Playgroud)

安装程序项目文件:

<TargetPlatformVersion>10.0.19041.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
<TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
Run Code Online (Sandbox Code Playgroud)

管道任务是使用 Visual Studio 2022 (v. 17) 进行 VSBuild,Nuget 工具是使用 NugetToolInstaller 任务安装的 6.0 版。

Azure Windows 代理使用 vmImage:“windows-2022”

错误说:

确保您已在项目的 TargetFrameworks 中包含“net6.0-windows10.0.19041.0”。您可能还需要在项目的运行时标识符中包含“win-x64”。

我已在应用程序和安装程序项目的 TargetFramework 中添加了“net6.0-windows10.0.19041.0”。

如果我win10-x64win-x64它替换可以构建,但我需要使用win10-x64,因为其中一个包需要它(Microsoft.PowerShell.SDK 和 System.Management.Automation)。

新:添加/p:RestoreLockedMode=trueVS Build 任务后,我现在收到错误:

MyApp.Installer.wapproj:错误 NU1004:项目 MyApp 没有兼容的目标框架。包锁定文件与项目依赖项不一致,因此无法在锁定模式下运行恢复。禁用 RestoreLockedMode MSBuild 属性或传递显式 --force-evaluate 选项来运行还原以更新锁定文件。

新新:我升级到.NET 7,但遇到了同样的错误。

我该如何修复该错误?