繁体   English   中英

NETSDK1061:该项目已使用 Microsoft.NETCore.App 版本 1.0.0 恢复,但使用当前设置,将改用版本 2.0.9

[英]NETSDK1061: The project was restored using Microsoft.NETCore.App version 1.0.0, but with current settings, version 2.0.9 would be used instead

我正在开发一个移动应用程序并使用 MS App Center for CI。 昨天,单元测试项目未能在 App Center 中构建,出现以下错误。 我无法在任何开发人员机器上重现该问题,此错误仅发生在 App Center 中。

错误:NETSDK1061:使用 Microsoft.NETCore.App 版本 1.0.0 恢复项目,但使用当前设置,将使用版本 2.0.9。 要解决此问题,请确保将相同的设置用于还原和后续操作(例如构建或发布)。 如果在生成或发布期间设置了 RuntimeIdentifier 属性,但在恢复期间未设置,通常会发生此问题。 有关详细信息,请参阅https://aka.ms/dotnet-runtime-patch-selection

他们的付费支持只是提供基础知识、清理项目、回滚我的最后一次提交等。以前有人在 App Center 上遇到过这个问题吗?

您需要设置相同的发布和构建运行时

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <RuntimeFrameworkVersion>2.1.0</RuntimeFrameworkVersion> --> fix publishing issues
    <PlatformTarget>AnyCPU</PlatformTarget> --> fix publishing issues
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Update="Microsoft.NETCore.App" Version="2.1.0" /> --> fix building issues
    <ProjectReference Include="..\PublicSonar.Monitor.Persistent.Json\PublicSonar.Monitor.Persistent.Json.csproj" />
  </ItemGroup>
</Project>

如果您使用 Azure DevOps,请不要编辑项目文件。 使用“dotnet restore”( https://learn.microsoft.com/en-us/azure/devops/pipelines/languages/dotnet-core?view=azure-devops ) 而不是 Nuget 恢复:

替换这个:

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

有了这个:

- script: dotnet restore

我在 Visual Studio 2019 上。当我第二次尝试将我的项目发布为 Self-contained 时遇到了这个问题。

我为摆脱这个错误所做的是:

  • 将部署模式更改为依赖于框架
  • 发布项目
  • 将其改回 Self-contained 并再次发布

这似乎是由一些错误的缓存引起的,可以通过切换到不同的部署模式来清除这些缓存。

尝试将<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>添加到您的<PropertyGroup>标记。 例子:

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
    <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
  </PropertyGroup>

在.csproj中添加这个

<PropertyGroup>
<RuntimeFrameworkVersion>2.1.5</RuntimeFrameworkVersion>
</PropertyGroup>

我在 Visual Studio 2019 上,这个答案让我走上了正确的道路,我的程序是:

  • 从我的机器上卸载Microsoft .NET Core SDK的所有实例。
  • 重新启动计算机。
  • 这里安装最新版本的SDK

我遇到这个问题是因为我有一个不再存在的 nuget 源 删除有问题的 nuget 源后,我恢复了项目,一切正常。

我通过命令行恢复了项目:

dotnet restore

我在 Azure Devops 中构建时遇到了这个问题,其他答案都无法解决。 我的构建和发布步骤已经有匹配--runtime选项。

对我来说,解决方法是将以下内容添加到.csproj文件中(将RuntimeIdentifier替换为适合您的部署方案的正确内容):

  <PropertyGroup>
      ...
      <RuntimeIdentifier>win-x64</RuntimeIdentifier>
  </PropertyGroup>

还要检查我在此处建议的解决方案( Using Azure Pipelines with multi targeting projects I get error NETSDK1061 ),也许它也适用于您:

- task: NuGetToolInstaller@0
  inputs:
    versionSpec: '>=4.3.0'
    checkLatest: true

为我解决问题的方法是通过更改 msvc 中的参数来更新用于还原的默认 NuGet 包缓存“C:\Users\.nuget\packages”:

工具 > 选项 > NuGet 包管理器 > 包还原 > 允许 NuGet 下载丢失的包并在 Visual Studio 中构建期间自动检查丢失的包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM