构建asp.net核心的错误

时间:2018-05-07 21:11:00

标签: asp.net-core .net-core

我使用dotnet创建了一个示例项目,但在构建项目时出现以下错误:

  

错误:使用Microsoft.NETCore.App版本2.1.0-rc1恢复了项目,但使用当前设置时,将使用版本2.1.0-preview3-26411-06。要解决此问题,请确保使用相同的设置进行还原以及后续操作(如构建或发布)。通常,如果在构建或发布期间设置了RuntimeIdentifier属性,但在还原期间未设置,则会发生此问题。

有什么问题?我正在使用VS 2017 build 15.7.0

9 个答案:

答案 0 :(得分:17)

我有类似的错误消息:

  

使用Microsoft.NETCore.App版本2.0.7还原了该项目,但使用当前设置,将改用版本2.0.0。要解决此问题,请确保将相同的设置用于还原以及后续操作(例如构建或发布)。通常,如果在构建或发布过程中设置了RuntimeIdentifier属性,但在还原过程中未设置RuntimeIdentifier属性,则会发生此问题

我在.csproj文件中添加了RuntimeFrameworkVersion设置,它为我解决了一个问题:

<PropertyGroup>
   <TargetFramework>netcoreapp2.0</TargetFramework>
   <RuntimeFrameworkVersion>2.0.7</RuntimeFrameworkVersion><!--here is the fix-->
</PropertyGroup>

<ItemGroup>
   <PackageReference Update="Microsoft.NETCore.App" Version="2.0.7" />
</ItemGroup>

答案 1 :(得分:10)

似乎VS使用不同的.net核心版本进行还原/构建/发布。 要解决此问题,可以在.csproj文件中添加TargetLatestRuntimePatch属性:

<PropertyGroup>
   <TargetFramework>netcoreapp2.0</TargetFramework>
   <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
</PropertyGroup>

有关详细信息,请参见this page

答案 2 :(得分:2)

就我而言,在csproj文件中我改变了

<ItemGroup>
        <PackageReference Update="Microsoft.NETCore.App" Version="2.0.5" />
</ItemGroup>

<ItemGroup>
    <PackageReference Update="Microsoft.NETCore.App" Version="2.1.0" />
</ItemGroup>

并且有效

答案 3 :(得分:1)

我安装了dot net SDK 2.2.0,发现这不是正确的版本,正确的版本重命名为2.1.300,与最新版本为2.1.0的notnetcore app同步。我安装了2.1.300,一切都正常运行。

答案 4 :(得分:1)

仅因为您已安装了最新的SDK,并不意味着您已安装了最新的运行时。我永远不会完全明白。

运行dotnet --info

我得到了以下内容(仅在此处显示最新安装的版本)。

 .NET Core SDKs installed:
   2.1.300 [C:\Program Files\dotnet\sdk]

 .NET Core runtimes installed:d\Microsoft.NETCore.App]  
  Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  • 所以我安装了2.1.1 runtime,现在dotnet --info也给了我2.1.1
  • 哦,而2.1.3实际上是2.1.1,但是由于某些我不完全了解或关心的原因,他们不得不增加它。
  • 重新启动Visual Studio,因为它似乎永远无法保持版本同步
  • 将以下内容添加到我的.csproj文件中的PropertyGroup中(卸载项目并进行编辑)

     netcoreapp2.1  2.1.1

现在,我认为我们不再需要指定此名称,并且此csproj今天才刚刚创建,并且根本没有运行时版本。无论我们应该做什么,这对我来说都是有效的。我还发现了关于massive thread与2.1.1进行版本控制的信息,但是我略过了一点,但是现在看来点发行存在复杂性,因此也许这个特定的版本是必要的。


由于这个错误,我到了这里

  

错误:使用Microsoft.NETCore.App版本还原了项目   2.1.1,但使用当前设置,将改用版本2.1.0。要解决此问题,请确保将相同的设置用于   恢复并用于后续操作,例如构建或发布。   通常,如果RuntimeIdentifier属性为   在构建或发布期间设置,但不在还原过程中设置。

添加RuntimeFrameworkVersion是适用于此功能的特定修复程序。

不幸的是,没有此错误消息的链接文章,这会有所帮助。

答案 5 :(得分:0)

对于我来说,此问题已通过确保我有两个项目得以解决,其中一个项目取决于另一个项目。一个项目在csproj文件中指定了RuntimeIdentifier,而另一个项目则没有。一旦我确保两个都具有匹配的RuntimeIdentifiers,问题就解决了。

答案 6 :(得分:0)

我遇到的具体错误是

error : NETSDK1061: The project was restored using Microsoft.NETCore.App version 2.0.5, but with current settings, version 2.1.1 would be used instead.

我有

<ItemGroup> <PackageReference Update="Microsoft.NETCore.App" Version="2.0.5" /> </ItemGroup>

进一步查找文件。一旦删除并执行clean,项目就成功构建了。

答案 7 :(得分:0)

经历相同:

 The project was restored using Microsoft.NETCore.App version 2.1.2, but with current settings, version 2.1.0 would be used instead.

--self-contained false命令中删除显式设置的dotnet publish似乎对我们有用。默认设置为相同,所以为什么不起作用,我不知道。

这是SDK版本2.1.400的版本。

答案 8 :(得分:-1)

<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <UserSecretsId>aspnet-...............245435</UserSecretsId>
    <RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
    <RuntimeIdentifier>win10-x64</RuntimeIdentifier>
</PropertyGroup>

<ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.1" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
    <PackageReference Update="Microsoft.NETCore.App" Version="2.1.1" />
</ItemGroup>