我正在尝试通过运行以下命令在我的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。知道我做错了吗?
答案 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
命令输出应类似于以下屏幕截图。
答案 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中作为控制台应用程序运行,并获得依赖项注入和日志记录。
吉娜