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

时间:2016-08-30 17:41:14

标签: ubuntu .net-core

我们有一个应用程序,用.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机器上构建它

3 个答案:

答案 0 :(得分:1)

这对我们有用。

  1. 将多个版本的dotnet运行时安装到不同的目录中。

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

  3. 从最新的运行时安装中运行dotnet,它应该选择适当的运行时。

  4. 请注意,这与Windows安装程序的操作相同。新运行时将添加到共享安装中。通过在sdk子目录中添加适当的符号链接,可以使用类似的方法从单个安装中获得对多个sdks的支持。

答案 1 :(得分:0)

答案 2 :(得分:0)

https://dotnet.microsoft.com/download/dotnet 下载 tar.gz 包 并使用以下命令安装软件包:

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 版本将被添加到 sdks 文件夹中,您可以通过运行来确认安装:

dotnet --list-sdks

我发现所有其他解决方案都无用且难以使用,而 dotnet-install 脚本非常难以使用且毫无意义。