體驗.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終於出現了:

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM