Windows Server:指定的框架' Microsoft.AspNetCore.App',版本' 2.1.0'没找到

时间:2018-06-17 15:49:07

标签: .net-core windows-server

我正在尝试通过运行以下命令在我的Windows Server(2012 R2)上运行dotnet核心api(2.1.0):dotnet Api.dll但是我一直收到以下消息。

The specified framework 'Microsoft.AspNetCore.App', version '2.1.0' was not found.
  - Check application dependencies and target a framework version installed at:
      C:\Program Files\dotnet\
  - Installing .NET Core prerequisites might help resolve this problem:
      http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
  - The .NET Core framework and SDK can be installed from:
      https://aka.ms/dotnet-download

当我使用相同的命令(dotnet Api.dll)时,api在我的mac上正常运行。当我使用dotnet --info时,我得到以下内容,并说它安装了最新的Runtime和SDK。

Runtime Environment:
 OS Name:     Windows
 OS Version:  6.3.9600
 OS Platform: Windows
 RID:         win81-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.1.300\

Host (useful for support):
  Version: 2.1.0
  Commit:  caa7b7e2ba

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

.NET Core runtimes installed:
  Microsoft.NETCore.App 2.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.
App]
  Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.
App]
  Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.
App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

已尝试添加PublishWithAspNetCoreTargetManifest部分并重新发布。它确实在发布时给了我更多文件但是对我当前的问题没有用。

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
->  <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest> <-
  </PropertyGroup>
  <ItemGroup>
    <Folder Include="wwwroot\" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.0" />
    ....

是不是因为它正在寻找Microsoft.AspNetCore.App并且我安装了Microsoft.NETCore.App 2.1.0?我真的不知道,我知道安装了最新的.NET核心运行时和sdk。知道我做错了吗?

2 个答案:

答案 0 :(得分:5)

  

可能是因为它正在寻找Microsoft.AspNetCore.App,所以我得到了   安装了Microsoft.NETCore.App 2.1.0吗?

是的,您是正确的。您安装了适当的Microsoft.NETCore.App运行时,但没有安装Microsoft.AspNetCore.App运行时。 Here是ASP.NET Core x64运行时安装程序的链接,而here是主下载页面的链接。成功安装后,您的dotnet --info命令输出应类似于以下屏幕截图。

enter image description here

答案 1 :(得分:0)

好的,我找到了原因。我有一个.net核心控制台应用程序。我为HostBuilder引入了“ Microsoft.AspNetCore.App”,用于DI。

Microsoft.AspNetCore.App与Docker控制台应用程序不兼容。

更好的方法是引入所需的单个库:

<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.5" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.1.1" />

不,我能够在docker中作为控制台应用程序运行,并获得依赖项注入和日志记录。

吉娜