体验.Net Core for Linux
在前几天的Build 2015大会上,微软推出支持Windows、Mac OS X和Linux平台的代码编辑器Visual Studio Code,同时也发布了为Linux和Mac OS X准备的.Net Core预览版。这么多年过去了.Net终于官方支持跨平台了,还是有点小激动的。赶紧在Hyper-V上装个Ubuntu体验一下。
Visual Studio Code可以在https://code.visualstudio.com/ 下载,安装步骤可以参考这里https://code.visualstudio.com/Docs/setup#_linux
其实安装很简单,下载后直接拖到ubuntu里解压,双击code就可以了。看着蓝色的VS图标是不是有点亲切呢。不过功能完全没法和Visual Studio相比,就是个简单的代码编辑器。 :D
下面主要说说coreclr的安装和测试代码的执行。
安装步骤参考了官方的 https://github.com/dotnet/coreclr/blob/master/Documentation/get-dotnetcore-dnx-linux.md
一切顺利的安装完成,但是最后在执行文章里的测试代码的时候出现了错误。
System.IO.FileLoadException: Resource string id=0x1A88
File name: ‘net-core-test, Culture=neutral, PublicKeyToken=null‘ ---> System.TypeInitializationException: The type initializer for ‘Roslyn.Utilities.SHA1CryptoServiceProvider‘ threw an exception. ---> System.TypeInitializationException: The type initializer for ‘Roslyn.Utilities.HashAlgorithm‘ threw an exception. ---> System.InvalidOperationException: Sequence contains no elements
at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
at Roslyn.Utilities.HashAlgorithm..cctor()
--- End of inner exception stack trace ---
at Roslyn.Utilities.HashAlgorithm.LoadAlgorithmCreate(String name)
at Roslyn.Utilities.SHA1CryptoServiceProvider..cctor()
--- End of inner exception stack trace ---
.....
仔细想想,唯一和文章里不同的地方就是coreclr的版本号
文章里的:
Active Version Runtime Arch Location Alias
------ ------- ------- ---- -------- -----
* 1.0.0-beta5-11649 coreclr x64 ~/.dnx/runtimes
1.0.0-beta5-11649 mono ~/.dnx/runtimes default
我自己机器的:
我认为是coreclr又发布了新的版本,所以也没在意。但是问题恰恰就和这个有关。经过一番搜索发现别人也遇到了同样的问题。详情参考https://github.com/dotnet/coreclr/issues/898
这个异常是11682版本的一个bug,果然是个很粗糙的预览版啊,不靠谱的很 -_-!
解决办法就是使用一个旧版本的coreclr.我使用的命令如下:
dnvm install 1.0.0-beta5-11657 -r coreclr -u
dnvm use 1.0.0-beta5-11657 -r coreclr
dnx . run
期待的Hello Linux终于出现了:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。