无法在Windows Server 2016上运行.NET Core 2.1(.1)应用程序

时间:2018-06-19 00:50:22

标签: asp.net-core windows-server-2016 asp.net-core-2.1

我正在尝试在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版本?

非常感谢任何指导。

3 个答案:

答案 0 :(得分:11)

答案 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)

您有两种选择:

  1. 在服务器上安装2.1.1框架(如另一个答案中所述)

  2. 使用所有必需资源发布您的应用。您可以使用以下命令执行此操作:

    dotnet publish --self-contained