.NET Core 1.0应用程序无法在.NET Core 1.1系统上运行

时间:2017-01-06 09:11:01

标签: .net .net-core visual-studio-2017

我有一个程序,我正在尝试迁移到.NET Standard / Core。该库的命令行界面是使用netcoreapp1.0的目标框架构建的。我尝试将其发送给只安装了.NET Core 1.1的测试人员(使用不同的操作系统)。该程序将无法运行,并给出错误:

The specified framework 'Microsoft.NETCore.App', version '1.0.1' was not found.
- Check application dependencies and target a framework version installed at:
  /usr/share/dotnet/shared/Microsoft.NETCore.App
- The following versions are installed:
  1.1.0
- Alternatively, install the framework version '1.0.1'.

这是预期的吗?据我了解,每个核心/标准版本都是前一版本的严格超集。因此,我预计一个针对1.0的程序仍然可以在1.1的系统上运行,而不是必须针对每个安装版本进行多目标。

更一般地说,我如何进行设置以便我不必担心以后只有较新版本的.NET Core无法运行程序的用户?

2 个答案:

答案 0 :(得分:2)

你错过了一个global.json。在项目中添加一个,以便应用程序知道使用1.0.0运行时启动,而不是1.1。

答案 1 :(得分:2)

您需要了解更多概念。

  1. 如果正确使用dotnet publish,.NET Core应用程序将自成一体。然后,在没有安装.NET Core的目标计算机上(或者不是它构建的版本),应用程序可以正常运行。根据您的描述,您可能忘记这样做,或者您没有尝试发布此应用程序。

  2. 如果您的目的只是将基于.NET Core 1.0.1的代码移动到另一台机器而该机器只安装了1.1.0,那么您应该能够运行dotnet-install脚本安装所需的运行时,

  3. https://docs.microsoft.com/en-us/dotnet/articles/core/preview3/tools/dotnet-install-script

    由于您已经在使用Visual Studio 2017 RC,因此您应该知道.NET Core 1.0.x现在应该是1.0.3。对1.0.0-1.0.2的支持已经过期。