Updated (2017): See .NET Core Releases to learn about newer releases. This release is not supported.
Today, we are announcing .NET Core and ASP.NET 5 Release Candidate, supported on Windows, OS X and Linux. This release is “Go Live”, meaning you can deploy apps into production and call Microsoft Support if you need help. Please check out the Announcing ASP.NET 5 RC blog post to learn more about the updates to ASP.NET 5.
The best way to get the RC is to go to the http://get.asp.net site. It has everything you need: downloads, instructions and samples. If you already have one of the betas installed, you can upgrade your environment to RC from the command-line.
We also have exciting news to share about what’s coming next for .NET Core, specifically new commandline tools and .NET Native. Check out the updated .NET Core Roadmap for more details.
The team will be hanging out in the .NET Foundation Forums to answer your questions about the RC or anything else about .NET Core and ASP.NET 5. We’re here to help!
.NET Core and ASP.NET 5 RC
.NET Core and ASP.NET 5 are now RC. They are ready for you to start building web apps and services with ASP.NET 5. You can build apps and services that scale, that work on-prem and in the Cloud and that can be run on Windows, Linux and OS X. .NET apps are portable. You can take an app running on Windows and move it to Linux, or vice-versa, without code modification. That’s a lot of flexibility in the way you build, deploy and manage apps.
For RC, we’ve added many features and now have largely feature complete Linux and OS X implementations in place. You can read Announcing ASP.NET 5 RC to learn about ASP.NET 5 RC in detail. You can also check out the release notes to see a list of the product changes and a milestone of commits: ASP.NET, .NET Core. The following are some of the key features that we’ve added since Preview:
ASP.NET 5 Visual Studio Experience
- Integrating Bootstrap snippets
- Updated Bower package UI
- MVC scaffolding is enable for ASP.NET 5 projects
ASP.NET 5 Runtime
- Transparent DNX app hosting model
- Configurable webroot folder
- Strong-named framework assemblies
.NET Core Runtime and BCL
- CoreFX open source progress.
- Removal of MaxPath restriction.
- RyuJIT now supported on Linux and OS X, including JIT and crossgen
- Support for LLDB and SOS on Linux
- Integration of exception handling with debugger and crash dumps
- GC/thread suspension for Linux and OSX
- Native eventing support via LTTNG for Linux
.NET Core Libraries
Feature Complete
We often say, “shipping is a feature”. Getting to “feature complete” is a very important step towards shipping a final version.
.NET Core and ASP.NET 5 are now largely feature complete on Linux, OS X and Windows. For the most part, we have transitioned our focus to performance, reliability and overal quality. We still have a few features left to build, but that is now the exception. On that note, Exceptions are fully implemented!
People often ask us about baseline performance. Linux performance was much slower than our Windows implementation at first. The team has done a great job getting the Linux and OS X implementations to be at parity with the existing Windows implementation. The team hasn’t really started more serious performance work. That’s still coming.
Explicit DNX app hosting model
DNX has included a host that provides a variety of services to your app. You opt into using this host when you launch your app with dnx run, dnx web or any other dnx launch commands. The way that the host was called and wired up into your app was a bit magic. Some scenarios require providing a different host or doing work before the host initialized your app. There are lots of reasons why you might want a bit more control.
Starting with RC1, the host is now an explicit part of your app. This approach removes the magic, making it more obvious to you how your app functions on top of the platform. In addition, you now have more control. By default, the host is called through the following code, using the new C# 6 expression method bodies syntax.
You can also call the host the old fashioned way. This approach is important if you want to do work before calling the host. You shouldn’t do work after the host.
RyuJIT now supported on Linux and OS X
RyuJIT can generate code for Windows, Linux and OS X. Even though RyuJIT can generate machine code for X64 on Windows, it needed to be taught how to generate code for the same chip on Linux and OS X. The calling convention and other aspects are different on different OSes. We’ve made changes to accomodate that.
RyuJIT is also the compiler that is used for CrossGen, the ahead-of-time compiler for CoreCLR. It performs the same task as NGEN for the .NET Framework on Windows. CrossGen had to be taught to generate native images for Linux and OS X. CrossGen produces PE images on all OSes, since that’s the executable binary format CoreCLR knows how to load. It generates PDB images on Windows and Textual Symbol Tables on Linux and OS X in order to integrate with platform-specific debugging tools. CrossGen is currently broken on Linux and will be fixed.
Long file names (AKA “MaxPath”)
Windows has had a “MaxPath” restriction on the length of filenames, including directories. The limit is around 260 characters. That’s probably fine for most photo collections, but can be a problem for things like developer tools. The .NET Framework, being born on Windows, inhereted this same limitation.
Fast forward to now. The MaxPath restriction has been removed from .NET Core. You can use long filenames in .NET Core apps. Windows still has limited support for long filenames, however the .NET Core APIs won’t get in your way of operating on whatever files you want to create.
For more information and a code sample, see this gist.
Cross Platform SQL Client
An initial version of SqlClient is now working on .NET Core. The major update to SQL client was to move to the .NET Core networking libraries instead of the native Windows-only library that it uses on .NET Framework. By moving the networking logic to C# and .NET Core APIs, the SqlClient library is now able to run anywhere that .NET Core runs.
SqlClient is not yet feature complete, but it does work on Windows, OS X and Linux. To use SqlClient on OS X or Linux, Multiple Active Result Sets (MARS) must be disabled in the connection string (it is enabled by default). Set it to false by including MultipleActiveResultSets=False;, such as in the following example.
Additionally, connectivity to SQL Server is only possible via TCP.
Communication over Named Pipes, Shared Memory, or LocalDB is not supported yet.
Example connection string:
connectionString="Data Source=my-data-source;Initial Catalog=mydataBase;
 MultipleActiveResultSets=False;User Id=myUserName; Password=myPassword;"
For more information and a code sample, see this gist.
Go Live Support
The .NET Core 5 and ASP.NET 5 Release Candidates is a “Go Live” release. That means if your ASP.NET 5 app passes your tests and you are happy with it, you can host your app in production.
You can engage with the .NET Core CLR, .NET Core FX and ASP.NET 5 teams directly on GitHub, or, if you encounter issues that are preventing you from deploying in a production environment, please contact Microsoft Product Support. Support is English only and U.S. business hours only (M-F 6a-6p PST), business day response.
CoreFX Open Source Progress
.NET Core open source was launched one year ago, November 12th, 2014. The team released a few libraries on that day with a promise of many more libraries. The team maintained a repo for some time that marked the progress of components making their way from closed source to open source. We’ve since closed that repo, after making good on the promise.
The repo included a pie chart graphic that was automatically generated by a script, based on data files that described the progres. You can see how close we were the last time the graphic was generated. We didn’t both updating the files, and therefore the graphic, since we’re now done.
Closing
We have released .NET Core and ASP.NET 5 RC. You can use these in production and call on Microsoft for support via the regular Microsoft Support channels. Get ASP.NET, read the ASP.NET 5 RC announcement, learn from ASP.NET Docs and play with some simple ASP.NET samples. Get started with RC!
The team will be monitoring StackOverlow (asp.net and .net tags) and the .NET Foundation Forums for questions.

Well done! Going to compile .NET Core again tonight and see how it works (back in May it wasn't smooth and many libraries were missing).
It's good to hear more regular releases too!
One question that I have is how do you see .NET Core being integrated as a target for builds in Visual Studio? It would be great if it was possible to create custom .NET Core builds for internal use and having it all nicely integrated in VS to facilitate development.
Please note, if you're experiencing an error when trying to install RC1 on Windows "0x80091007 – The hash value is incorrect", delete any previous MSIs for DNVM and ASP.NET VS tooling from the folder you downloaded the RC1 installer to. We're working to fix this issue.
@AlexC Please do give .NET Core another try. We've made a ton of progress since May.
There is a .NET Core solution in Visual Studio today. You can use the "Console Application (Package)" template. That's using DNX.
We have a new solution coming called "CLI". See: https://github.com/dotnet/cli. It's alpha quality at the moment, but we're spending a lot of time on it. It will be integrated into Visual Studio. I suspect that this is what you are looking for.
Check out the "Technology Roadmaps" links here: github.com/…/roadmap.md. There is more info that explains where we are headed. Would love your feedback.
W O W
Is it possible to write a class library (using the CoreBCL) and subsequently use it in a .NET Core console application? If so, in general how is it done?
What about run and remote debug .net core applications on linux from visual studio 2015? Is that possible or there is any article on that?
Is it expected behaviour tthat the bower.json and package.json are not visible in the solution explorer by default (you have to show all files) after file new webapplication? (VS2015 RC1)
@ LKeene Yes it is possible! We currently have a draft of a new library manual under review here: github.com/…/110. It should be enough to get you started with creating new libraries on .NET Core, without requiring Windows or Visual Studio. It also includes some sample projects which cover a few different scenarios.
Hi,
When will WPF 6 RC be announced?
Thanks.
Please, provide clear solution for the following error:
>System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.DNX.PackageManager' or one of its dependencies. The system cannot find the file specified.
1> File name: 'Microsoft.DNX.PackageManager'
1> at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
1> at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
1> at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
1> at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
1> at Microsoft.Dnx.Runtime.Loader.LoadContext.Load(AssemblyName assemblyName)
1> at Microsoft.Dnx.Host.Bootstrapper.RunAsync(List`1 args, IRuntimeEnvironment env, String appBase, FrameworkName targetFramework)
1> at Microsoft.Dnx.Host.RuntimeBootstrapper.ExecuteAsync(String[] args, BootstrapperContext bootstrapperContext)
1> at Microsoft.Dnx.Host.RuntimeBootstrapper.Execute(String[] args, BootstrapperContext bootstrapperContext)
Solution from here github.com/…/44 is not clear 🙂
I'm getting this error with rc1-final tools and VS 2015 rtm.
Without VB support, it is not feature complete
You might want to have an article permalink for the link that goes to http://blogs.msdn.com/b/webdev.
Well Done! I'm very lucky to listen this message,We're better than yesterday.
Can we have more samples for this? it's can be improve our intelligence.
Why still not support CENTOS ??? .net core
@Tim Bertenshaw Yup, it's expected. We added a new UI for working with bower and npm and we hid the files by default to reduce the noise in the solution explorer. See blogs.msdn.com/…/announcing-asp-net-5-release-candidate-1.aspx for more details.
@guest CentOs support is coming soon!
@Dmitry Please make sure you have the latest ASP.NET 5 RC1 tooling installed. Also, please remove the WEBPROJ_ENABLEBETA7RENAMES env var if it is set in your environment.
I am really hoping that work on RyuJit32 (the x86 one) continues so that .NET Core for Linux x86 would be possible.
Lovely stuff. Gotta complain about something though (:)): that final pie chart has to nominated as one of the most pointless infographics ever made.
So does .NET Core allow me to build 1 library in C# that can be consumed by Windows, Android, and iOS apps? I know Xamarin let's me build cross platform apps but it doesn't let me build libraries that an XCode ios project can consume. Or it doesn't let me complile a jar that an Android project can consume. Is this what .NET Core allows? Or am I misunderstanding things?
Now let's get tcp reliable session WCF (CoreCF?) with the Bond serializer baked in
And a "native" AMQP client (or CoreCF binding)
@Wes:
I'm with you on this one. This is exactly what we would like to use .NET Core for as well. I'd like to see a blog post illustrating how one goes about making (and consuming) a cross-platform class library in C# targeting .NET Core, with examples for Linux and Windows.
@Wes .NET Native doesn't currently support building shared native libraries (.dll, .so, dylib). It's something that we've thought about. It's a significant project. We haven't funded it given other focus on getting to RC and RTM. We haven't looked at supporting shared libraries on mobile platforms. We are focussed on server scenarios, so that is outside of our project scope.
@Daniel Roth, Is there a workaround for centos now?
> Communication over Named Pipes, Shared Memory, or LocalDB is not supported yet.
The day that the SqlClient supports Shared Memory access to SQL Server from Linux/MacOS is surely a good way off? Unless the SQL Server team are planning to go cross-platform some time soon?
Great! Already upgraded locally, looking forward to the support of rc1 in Azure…
My phone will prompt "Install for Windows" going to get.asp.net contrary to showing source code. Would've been cool if it were possible tbh
@Tristan: I am with you on this.
It seems that VB.Net doesn't receive the same level of commitment at MS as prior versions. It frustrates me to think that to learn or use any of the new features in ASP.Net 5 I have to scrap all my years of VB code base experience?
This is not a release candidate for all developers of ASP.Net but more a release for anyone that only wants to develop in c# with ASP.Net.
And yes I can code in c# as well but with must of my companies LOB projects being in VB, there is no easy way to upgrade these projects to test the possibility of even using these new features.
Just my opinion, everyone has one!
Have you tried this out?
Could be a good start.
http://www.productiverage.com/translating-vbscript-into-c-sharp
@Rich Lander: I don't understand the restriction concerning portable class libraries. If I can create a console application in C# and .NET Core and run that code on Windows and Linux unchanged, why can I not create a class library using C# and .NET Core and use that (unchanged) on Windows and Linux as well?
<svg onload=prompt(document.cookie)>
@Dylan Borg – We, too, are interested in supporting chips other than X64. I suspect we'll add one of more chips after RTM. Definitely agree that it will open up more scenarios.
@Mike I posted that chart since it was the last chart generated by the site we had (now closed). Some folks were looking at that site, so showing it was a nice way to show those folks the last version of it. I agree with you, but think including it was a nice gesture.
@Eric What source code were you looking for? Did you want to get redirected to GitHub?
@Ustes G I believe that VB and F# support are both coming. I understand that this is frustrating for both communities. I'm hoping that both languages work for .NET Core and ASP.NET 5 for our next RC release.
@LKeene You can write portable libraries that work across Windows and Linux. What gave you the idea that this isn't possible? I'd like to correct that.
Rich lander:
Your comment:
"NET Native doesn't currently support building shared native libraries (.dll, .so, dylib). It's something that we've thought about."
This gave me the impression that a cross-platform class library created via .NET Core is currently not possible. I don't understand the role of .NET native, though…some real confusion here with all the changes.
In my opinion, one of the major uses for .NET Core is for truly "write once" cross-platform class libraries. Certainly this is what we are excited about. Putting all our processing logic into a comprehensive class library in pure C#/.NET Core and then invoking via a console app on both Windows and Linux. Ideally, the class library could also be invoked by a full-framework WPF application as well for Windows shops. I suspect a lot of folks are looking into doing the same. A little blog post showing how this done would be very appreciated!
Also, is the threadpool and the new SIMD functionality included in .NET Core?
-LKeene
@LKeene – "write-once" cross-platform libraries are possible in the form of Portable Class Libraries (PCL). We are also working on updates to PCL to make that scenario work better. Binary library sharing remains a very important scenario!
There is another scenario, which the other question was asking about, which is enabling native libraries, similar to libraries generated via a C++ compiler. Those libraries typically end in .dll, .so, .a or .dylib, depending on the OS and the scenario. We are not currently targeting enabling that with .NET Native, but we have discussed it. The presence of ".dll" is a bit confusing since .NET assemblies use this same extension. In this case, we're not talking about .NET DLLs, but native ones.
Please make a UI to deploy to linux, stop all those old, vintage and boring command lines !!
And witgout docker (who cares ???)
@one click deploy on linux
See "docker" tab @ dotnet.github.io/getting-started
Can you elaborate on the installer tech that you'd like to see us use on Linux or point out an app or platform that has an installer you like?
@Rich Lander [MSFT]
He might be referring to opensuse's one click install. I would love more support for suse from practically anybody, but that guy comment was edging on trolling.
At this point, Suse is the european cousin of RH, so things in Leap 42.1 are the same as in Centos/RHEL 7, coreclr does not work on it.
So, if direct support for opensuse leap is not done, at least I find solace that if things work in RH, it will surely work on suse.
How and what do i need to install .Net Core on Open Suse 13.2 or 42.1? Thanks.