如何在ubuntu上并排安装多个版本的.NET Core

如何在ubuntu上并排安装多个版本的.NET Core,ubuntu,.net-core,Ubuntu,.net Core,我们有一个应用程序,是用.NET Core rc2编写的,在接受环境(linux服务器)上运行。 最近,我们的客户机运行了自己的性能测试,结果完全破坏了应用程序。由于以下几个原因,我们无法自己复制: 1) 我们在windows上开发 2) 我们已经从rc2迁移到了1.0.0 在windows上,我们无法在新版本(1.0.0)或rc2中复制。 所以我们尝试在linux机器上复制它。在1.0.0上,我们也无法重现他们的结果,但当我们试图实际测试rc2(显然是我们应用程序的旧版本)时,我们遇到了一个非

我们有一个应用程序,是用.NET Core rc2编写的,在接受环境(linux服务器)上运行。 最近,我们的客户机运行了自己的性能测试,结果完全破坏了应用程序。由于以下几个原因,我们无法自己复制: 1) 我们在windows上开发 2) 我们已经从rc2迁移到了1.0.0

在windows上,我们无法在新版本(1.0.0)或rc2中复制。 所以我们尝试在linux机器上复制它。在1.0.0上,我们也无法重现他们的结果,但当我们试图实际测试rc2(显然是我们应用程序的旧版本)时,我们遇到了一个非常恼人的问题:我似乎无法同时安装1.0.0和rc2,即使错误消息暗示这是可能的。 下面是错误消息

The specified framework 'Microsoft.NETCore.App', version '1.0.0-rc2-3002702' 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.0.0
  - Alternatively, install the framework version '1.0.0-rc2-3002702'.
基本上,我们希望能够检查当前在linux机器上接受我们的应用程序(rc2)时运行的版本,但实际上我们正在努力将rc2放在上面

谢谢。如果有什么不清楚的地方,请在评论中发表你的问题

编辑: 我尝试将其构建为独立部署,但随后出现以下错误:

Errors in /home/nicolaas/Projects/digipolis-survey-engine/Digipolis.FormEngine/Digipolis.FormEngine.Response.API/project.json
    System.AppContext 4.1.0-rc2-24027 provides a compile-time reference assembly for System.AppContext on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with ubuntu.15.10-x64.
    System.Runtime.InteropServices.RuntimeInformation 4.0.0-rc2-24027 provides a compile-time reference assembly for System.Runtime.InteropServices.RuntimeInformation on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with ubuntu.15.10-x64.
    One or more packages are incompatible with .NETCoreApp,Version=v1.0 (ubuntu.15.10-x64).

这是意料之中的事,因为rc2实际上没有安装在机器上,我想在linux机器上构建它,这对我们来说一直很有效

  • 将多个版本的dotnet运行时安装到不同的目录

  • 对于最新的运行时安装,请为每个较旧的运行时添加符号链接。例如,对于较旧的运行时1.1.2,我们创建符号链接/path/to/dotnet-latest/shared/Microsoft.NETCore.App/1.1.2-->/path/to/dotnet-1.1.2/shared/Microsoft.NETCore.App/1.1.2

  • 从最新的运行时安装运行dotnet,它应该选择适当的运行时


  • 请注意,这相当于Windows安装程序所发生的情况。新运行时将添加到共享安装中。通过在sdk子目录中添加适当的符号链接,可以使用类似的方法从单个安装中获得对多个sdk的支持。

    只需使用
    dotnet安装脚本:


    这是一个很好的教程:

    从 并使用以下命令安装软件包:

    mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-6.0.100-preview.3.21202.5-linux-x64.tar.gz -C $HOME/dotnet
    export DOTNET_ROOT=$HOME/dotnet
    export PATH=$PATH:$HOME/dotnet
    
    scound版本将添加到SDK文件夹,您可以通过运行以下命令确认安装:

    dotnet --list-sdks
    

    我发现所有其他的解决方案都是无用的,很难使用,脚本也很难使用,毫无意义。

    您尝试过.Net core的选项吗?我没有。我以前没想到。。。我现在就试试,谢谢!你找到解决问题的办法了吗?@Sharif对不起,我们没有。如果我没记错的话,我们找到了一个解决方法(基本上只是在安装了特定版本的情况下旋转另一个VM)是的,这也是我正在做的一个解决方法。另一篇关于Fedora的不错的wiki帖子,我必须安装在与我当前SDK相同的文件夹中
    dotnet——列出sdk
    3.1.201[/usr/share/dotnet/sdk]
    。使用命令
    /dotnet-install.sh-Version 2.1.805--install dir/usr/share/dotnet
    @DaviFiamenghi谢谢!在Ubuntu20.10上工作得很有魅力。