我正在尝试在Windows Server 2016实例上运行.NET Core应用程序。它在我的Windows 10机器上构建/运行良好。
首先我正在做dotnet publish
并将发布的网站复制到Windows Server实例。我跟着this guide并安装了托管软件包以及最新SDK (2.1.3
)。
但是当我尝试dotnet myapp.dll
时,我收到以下错误消息:
It was not possible to find any compatible framework version
The specified framework 'Microsoft.AspNetCore.All', version '2.1.1' 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
- The following versions are installed:
2.1.0 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
我可以清楚地看到,Microsoft.AspNetCore.All
确实2.1.0
只有Program Files\dotnet\shared
版本。如何获得正确的2.1.1
版本?
非常感谢任何指导。
答案 0 :(得分:11)
使用此链接安装2.1.1核心sdk版本:
答案 1 :(得分:4)
看起来发布Microsoft.AspNetCore.All包存在一些问题,并且未将其设置为使用VS update / Core SDK安装自动安装。至少不适合我。 nuget包也在10小时前添加,下载次数为0次。所以默认情况下我们仍然坚持使用2.1.0。要解决这个问题,我做的第一件事就是检查ASP.NET Web应用程序模板使用的内容(它们不断更改默认值,因此如果您有一个旧项目正在更新,那么检查默认模板中的更改也总是很方便)。
我的修复是从.csproj文件中的标记中删除Version参数,就像现在在默认模板中一样。原文:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.1.1" />
</ItemGroup>
修改后:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" />
</ItemGroup>
这将基本上解析为最新安装的版本,即现在的2.1.0。最有可能2.1.1将安装在以后的更新中。您也可以尝试手动安装最新的软件包,但我建议尽可能使用默认软件包。这样,未来的更新不太可能破坏我的系统。
答案 2 :(得分:2)
您有两种选择:
在服务器上安装2.1.1框架(如另一个答案中所述)
使用所有必需资源发布您的应用。您可以使用以下命令执行此操作:
dotnet publish --self-contained