ubuntu15.10 或者 16.04 或者 ElementryOS 下使用 Dotnet Core

时间:2021-08-25 00:28:19

这里我们不讲安装,缺少libicu52自行安装.

安装完成后使用dotnet restore或者build都会失败,一是报编译的dll不适合当前系统,二是编译到ubuntu16.04文件夹下会产生一些问题。更麻烦的是会导致visual studio code无法安装.net core debug.

那么如何欺骗.net core让它认为我们现在是ubuntu 14.04环境呢?

1. 首先我们使用 dotnet --version

.NET Command Line Tools (1.0.0-beta-001793)

Product Information:
Version: 1.0.0-beta-001793
Commit Sha: 42a0eec967

Runtime Environment:
OS Name: ubuntu
OS Version: 14.04
OS Platform: Linux
Runtime Id: ubuntu.14.04-x64

2. 然后在 https://github.com/zlzforever/cli  项目中搜索: Runtime Id

ubuntu15.10 或者 16.04 或者 ElementryOS 下使用 Dotnet Core

3. 查找runtimeEnvironment是何方神圣,结果在cli项目中并找不到. 应试是依赖,对比几次的引用确定是在: Microsoft.Extensions.PlatformAbstractions 命名空间下

4. 猜想必然还是开源的项上,于是在github.com上全局搜索

ubuntu15.10 或者 16.04 或者 ElementryOS 下使用 Dotnet Core

5. 顺藤摸瓜找到最终代码

ubuntu15.10 或者 16.04 或者 ElementryOS 下使用 Dotnet Core

6. 修改ID和VERSION_ID

ubuntu15.10 或者 16.04 或者 ElementryOS 下使用 Dotnet Core

7. 好了,dotnet core以为你的环境是ubuntu 14.04啦

ubuntu15.10 或者 16.04 或者 ElementryOS 下使用 Dotnet Core

其它类型的Linux应试也可以使用此方欺骗dotnet core.

本来CLI在1598版本是可以使用--runtime ubuntu.14.04-x64指定RUN ID的,但是到了1793后不能使用这个参数了. 实际上修改os-release比使用--runtime更好, 比如解决visual studio code的编译dotnet core debug的问题