ubuntu15.10 或者 16.04 或者 ElementryOS 下使用 Dotnet Core
这里我们不讲安装,缺少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
3. 查找runtimeEnvironment是何方神圣,结果在cli项目中并找不到. 应试是依赖,对比几次的引用确定是在: Microsoft.Extensions.PlatformAbstractions 命名空间下
4. 猜想必然还是开源的项上,于是在github.com上全局搜索
5. 顺藤摸瓜找到最终代码
6. 修改ID和VERSION_ID
7. 好了,dotnet core以为你的环境是ubuntu 14.04啦
其它类型的Linux应试也可以使用此方欺骗dotnet core.
本来CLI在1598版本是可以使用--runtime ubuntu.14.04-x64指定RUN ID的,但是到了1793后不能使用这个参数了. 实际上修改os-release比使用--runtime更好, 比如解决visual studio code的编译dotnet core debug的问题