C# 8.0 in-depth: Setup C# 8.0 and .NET Core 3.0

Currently, Microsoft has the second preview of C# 8.0 and .NET Core 3.0, with a lot of new features and new APIs. This part of C# 8.0 series demonstrates how to setup the environment.

One way to setup the environment is to install Visual Studio 2019 preview (https://visualstudio.microsoft.com/vs/preview/). However, if you use Linux or macOS, or you do not have tons of space on your hard drive, you can go with Visual Studio Code. After all it is just a text editor.

Setup .NET Core preview SDK

First, install the latest SDK of .NET Core 3.0 for your operating system from the official website: https://dotnet.microsoft.com/download/dotnet-core/3.0. Currently v3.0.0-preview2/SDK 3.0.100-preview-010184 is the latest. Then run the following command to verify the installation:

dotnet --version
3.0.100-preview-010184

By default, the dotnet CLI uses the latest SDK installed for dotnet build and dotnet new, etc.. If you want to go back to the previous stable SDK, use the global.json to specify the stable SDK version for your directory. First, run dotnet –list-sdks to view all the installed SDKs, then run dotnet new globaljson –skd-version {version} to create the global.json file. Then run dotnet –version to verify the changed SDK version:

C:\Users\dixin>dotnet --list-sdks
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.503 [C:\Program Files\dotnet\sdk]
2.2.100 [C:\Program Files\dotnet\sdk]
3.0.100-preview-010184 [C:\Program Files\dotnet\sdk]

C:\Users\dixin>d:

d:\>cd User\GitHub\CodeSnippets\Linq.Range\Test

d:\User\GitHub\CodeSnippets\Linq.Range\Test>dotnet new globaljson --sdk-version 2.2.100
The template "global.json file" was created successfully.

d:\User\GitHub\CodeSnippets\Linq.Range\Test>type global.json
{
  "sdk": {
    "version": "2.2.100"
  }
}
d:\User\GitHub\CodeSnippets\Linq.Range\Test>dotnet --version
2.2.100

Setup Visual Studio Code with preview C# extension

Now Visual Studio Code should work with dotnet CLI, since it is just a text editor. The latest preview C# extension can be installed for a little better experience with C# 8.0. Go to its GitHub repo: https://github.com/OmniSharp/omnisharp-vscode/releases. Currently the latest preview is v1.18.0-beta7. Download the .vsix installer, then load it to Visual Studio Code:

image

After that, the extensions version shows 1.18.0-beta7:

image

Setup project

Now create a new console app project with dotnet CLI: dotnet new console. Then open the created .csproj file, enable C# 8.0 by adding <LangVersion>8.0</LangVersion>, and enable C# 8.0 nullable reference type check by adding <NullableContextOptions>enable</NullableContextOptions>. The .csproj file becomes:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <LangVersion>8.0</LangVersion>
    <NullableContextOptions>enable</NullableContextOptions>
  </PropertyGroup>

</Project>

In preview 1, <NullableReferenceTypes>true</NullableReferenceTypes> was used. Now it is changed to <NullableContextOptions>. Then you can start coding C# 8.0 and .NET Core 3.0, and press F5 to start debugging with Visual Studio Code.

If you create a library project, the default target framework is TargetFramework is netstandard2.0. It must be changed to netcoreapp3.0. The entire .csproj becomes:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <LangVersion>8.0</LangVersion>
    <NullableContextOptions>enable</NullableContextOptions>
  </PropertyGroup>

</Project>

The difference is no  <OutputType>Exe</OutputType>.

45 Comments

  • When using the IConfigurationBuilder in a .NET Core 2.1 application with a Generic Host I configure 4 sources; but after the scope of ConfigureAppConfiguration there are 6 sources.

    At some point 2 additional source I have already loaded are added a second time in an order that is causing appsettings.Environment.json values to be hidden. I have also tried removing the hostsettings.json configuration and verified that is not affecting this. This is for an Azure Webjob using WebjobsSDK 3.0 and .Net Core 2.1

  • The details are given of the setup c 8.0 and the net core 3.0 is very well described and by the post we can get to know about them and how it is going to be implemented and that is the main thing in that and for the developers, it will also be helpful.

  • To create a suitable project for trying out all currently available C# 8.0 features, you can follow these steps:

    1. Create a new .NET Core project of any type.

    2. In the Application pane of the Project Properties window, make sure that the Target Framework is set to .NET Core 3.0.

    3. From the Build pane of the Project Properties window, open the Advanced Build Settings dialog and select C# 8.0 (beta) as the Language version.

  • Shot:

    C:\>dotnet --version
    3.0.100-preview9-014004

    Chaser:

    error NETSDK1045: The current .NET SDK does not support targeting .NET Core 3.0. Either target .NET Core 2.1 or lower, or use a version of the .NET SDK that supports .NET Core 3.0.

    LOL fuck off.

  • I think .Net the best programming language

  • You’re the best teacher ever!

  • I like reading through a post that can make people think. Also, thank you for allowing for me to comment!

  • Cyber security is the practice of preventing malicious attacks on computers, servers, mobile devices, electronic systems, networks, and data. Additionally, it is referred to as information technology security or electronic data security.

    <a href="https://breezendtech.com/" rel="nofollow">Security Solutions, Security Solutions, Threat Management, Incident Response, cybersecurity solutions, cyber security company, Cyber Security Services</a>

  • https://ma-study.blogspot.com/

  • مرجع خدمات عروسی با بهترین تالارهای غرب تهران و احمدآباد مستوفی. تالار عروسی را انتخاب کنید قیمت عروسی
    باغ تالارهای تهران محلی مناسب برای جشنهای عروسی است که بسیاری از مراسمات مانند عقد، نامزدی، تولد، سمینار، میتینگ و همایش و گردهمایی ها در آن برگزار می‌شود و همه تمایل دارند یک باغ مناسب برای مراسم خود داشته باشند.

  • آرایشگاه داماد تهران حمید بخشی تهران گریم زعفرانیه تهران پاکسازی پوست
    داماد داماد داماد عروسی

  • First of all, thank you for your post. Keo nha cai Your posts are neatly organized with the information I want, so there are plenty of resources to reference. I bookmark this site and will find your posts frequently in the future. Thanks again ^^

  • I saw your article well. You seem to enjoy <a href="http://cse.google.co.uk/url?q=https%3A%2F%2Fcasinonation.org">baccarat online</a> for some reason. We can help you enjoy more fun. Welcome anytime :-)

  • I searched a lot on this subject and finally found it. I read your post and I am very impressed. We often visit this site to appreciate your opinion.. Would you like to visit?메이저토토

  • I hope you appreciate the time you spent reading this wonderful book!!! I definitely enjoy all the small parts of it and I've bookmarked a blog you must read to check out the new things on your blog! I bookmarked it on my bookmark internet site list and am checking back soon. 메이저토토

  • <p>Well, this is my first visit to your blog! We are a group of volunteers and starting a new initiative in a community in the same niche. Your blog provided us valuable information to work on. You have done a marvelous job! You can also see<br>
    همچنین برای مشاهده لیست باغ تالار های تهران شما باید به یک منبع معتبر و آگاه مراجعه کنید تا شما را به بهترین شکل ممکن راهنمایی کند و در مسیر برگزاری مراسم عروسی در باغ تالار های تهران دچار مشکل نشوید <a href="https://vrgl.ir/CnOQF" rel="nofollow ugc">باغ تالار های تهران</a></p>

  • همچنین برای مشاهده لیست باغ تالار های تهران شما باید به یک منبع معتبر و آگاه مراجعه کنید تا شما را به بهترین شکل ممکن راهنمایی کند و در مسیر برگزاری مراسم عروسی در باغ تالار های تهران دچار مشکل نشوید

  • thanks a lot.

  • thanks a lot.

  • thanks a lot.

  • At Techinfluencer, we specialize in driving digital transformation for businesses of all sizes. Our expert team combines deep industry knowledge with technical expertise to deliver customized IT solutions that optimize processes, enhance productivity, and drive growth. Partner with Techinfluencer to unlock the full potential of your business in the digital age.

  • Thank you for sharing the instructions on setting up the environment for C# 8.0 and .NET Core 3.0. Installing Visual Studio 2019 preview or using Visual Studio Code are the options mentioned. Additionally, the process of setting up the .NET Core preview SDK and configuring Visual Studio Code with the preview C# extension is explained. The steps for creating a new console app project and enabling C# 8.0 features are also provided.

  • Thanks for sharing. You have provided the best solution like always. Looking forward to more informative topics.

  • Thank you for sharing this information about setting up C# 8.0 and .NET Core 3.0. It's indeed valuable for developers looking to work with the latest technologies. Your detailed instructions make the process much more accessible.

  • Thanks for the detailed guide on setting up the environment for C# 8.0 and .NET Core 3.0! 🖥️ This step-by-step explanation is super helpful, especially for those of us who want to stay up-to-date with the latest features and APIs. The instructions for Visual Studio Code and the tips on changing target frameworks are much appreciated. Time to dive into C# 8.0 and start exploring! 🚀👨‍💻

  • Microsoft's C# 8.0 and .NET Core 3.0 offer exciting new features and APIs, and setting up the environment is key. To get started, you can install Visual Studio 2019 preview or opt for Visual Studio Code, especially if you're on Linux or macOS or have limited hard drive space. Make sure to set up the .NET Core preview SDK and the latest C# extension for Visual Studio Code for a smooth development experience.




  • I wanted to take a moment to express my appreciation for your recent blog post. Your writing style is engaging and informative, making it easy to understand the topic and follow along. I particularly enjoyed how you provided clear examples and practical advice that can be easily implemented.

  • Hello ! I am the one who writes posts on these topics <a href="https://google.tl/url?sa=t&url=https%3A%2F%2Fwww.mtclean.blog/">baccarat online</a> I would like to write an article based on your article. When can I ask for a review?

  • I was looking for another article by chance and found your article <a href="https://google.tk/url?sa=t&url=https%3A%2F%2Fwww.mtclean.blog/">casinosite</a> I am writing on this topic, so I think it will help a lot. I leave my blog address below. Please visit once.

  • It's really great. Thank you for providing a quality article. There is something you might be interested in. Do you know <a href="https://google.tg/url?sa=t&url=https%3A%2F%2Fwww.mtclean.blog/">majorsite</a> ? If you have more questions, please come to my site and check it out!

  • From some point on, I am preparing to build my site while browsing various sites. It is now somewhat completed. If you are interested, please come to play with <a href="https://google.td/url?sa=t&url=https%3A%2F%2Fwww.mtclean.blog/">bitcoincasino</a> !!

  • Wishing you a journey ahead filled with joy, discovery, and the fulfillment of all your aspirations. May each day be a step closer to your dreams. https://drfarfar.net/ https://drfarfar.net/microsoft-word/ https://drfarfar.net/microsoft-powerpoint/ https://drfarfar.net/pdffactory-pro/

  • Your article attracted my attention to readership, and it all made me enjoy and liked the content that people wrote.

  • Thanks for this . So it is interesting and very good written and see what they think about other people.

  • The post is written in very a good manner and it contains many useful information for me.

  • Attractive, post. I just stumbled upon your weblog and wanted to say that I have liked browsing your blog posts. After all, I will surely subscribe to your feed, and I hope you will write again soon!

  • I recently came across your blog and have been reading along. I thought I would leave my first comment

  • Hello, this weekend is good for me, since this time i am reading this enormous informative article here at my home.

  • This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post.

  • When your website or blog goes live for the first time, it is exciting. That is until you realize no one but you and your.

  • You are undertaking an excellent duty in sharing this type of reliable content. This is especially what I was searching for.

  • Don't stop at writing articles. Because I will not stop reading your articles. Because it's really good.

  • The depth of research and clarity of presentation in your writing are remarkable.

  • Thanks for Share this information with me really helpful for me.
    <a href="https://www.ashishtools.co.in/pet-preform-mould.html">Pet Preform Mould</a>

  • Nice read, I just passed this onto a colleague who was doing a little research on that.

Add a Comment

As it will appear on the website

Not displayed

Your website