无法在 Windows Server 2016 上 运行 .NET Core 2.1(.1) 应用程序
Can't run .NET Core 2.1(.1) application on Windows Server 2016
我正在尝试 运行 我的 Windows Server 2016 实例上的 .NET Core 应用程序。它 builds/runs 在我的 Windows 10 机器上很好。
首先,我正在做 dotnet publish
并将已发布的站点复制到 Windows 服务器实例。我按照 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
版本?
非常感谢任何指导。
使用这个link安装2.1.1核心sdk版本:
发布 Microsoft.AspNetCore.All 包时似乎出现了一些问题,它没有设置为随 VS update/Core SDK 安装自动安装。至少不适合我。 nuget 包也是在 10 小时前添加的,下载量为 0。所以默认情况下我们仍然坚持使用 2.1.0。要解决此问题,我做的第一件事是检查 ASP.NET 网络应用程序模板使用的内容(它们会不断更改默认值,因此如果您有一个要更新的旧项目,检查默认值的更改总是很方便也有模板)。
我的解决方法是从 .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.1.1框架(在另一个回答中提到)
使用所有必需的资产发布您的应用程序。您可以使用以下命令执行此操作:
dotnet publish --self-contained
我正在尝试 运行 我的 Windows Server 2016 实例上的 .NET Core 应用程序。它 builds/runs 在我的 Windows 10 机器上很好。
首先,我正在做 dotnet publish
并将已发布的站点复制到 Windows 服务器实例。我按照 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
版本?
非常感谢任何指导。
使用这个link安装2.1.1核心sdk版本:
发布 Microsoft.AspNetCore.All 包时似乎出现了一些问题,它没有设置为随 VS update/Core SDK 安装自动安装。至少不适合我。 nuget 包也是在 10 小时前添加的,下载量为 0。所以默认情况下我们仍然坚持使用 2.1.0。要解决此问题,我做的第一件事是检查 ASP.NET 网络应用程序模板使用的内容(它们会不断更改默认值,因此如果您有一个要更新的旧项目,检查默认值的更改总是很方便也有模板)。
我的解决方法是从 .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.1.1框架(在另一个回答中提到)
使用所有必需的资产发布您的应用程序。您可以使用以下命令执行此操作:
dotnet publish --self-contained