Compiling and building in Visual Studio for Mac.; 2 minutes to read +3; In this article. Visual Studio for Mac can be used to build applications and create assemblies during the development of your project. Nov 20, 2016 Setting up Haskell in VS Code on macOS. Matthew Doig. Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. VS for Mac is nothing like VS for windows, however, I have found it's a lot more stable than monodevelop. I rarely use my mac, but I did put VS for Mac on it and just have a better experience in it. That being said, no, you'll not get the same experience you will get in the windows version.
-->This document provides the steps and workflow to create a .NET Core solution for macOS. Learn how to create projects, unit tests, use the debugging tools, and incorporate third-party libraries via NuGet.
Note
This article uses Visual Studio Code on macOS.
Prerequisites
Install the .NET Core SDK. The .NET Core SDK includes the latest release of the .NET Core framework and runtime.
Install Visual Studio Code. During the course of this article, you also install Visual Studio Code extensions that improve the .NET Core development experience.
Install the Visual Studio Code C# extension by opening Visual Studio Code and pressing F1 to open the Visual Studio Code palette. Type ext install to see the list of extensions. Select the C# extension. Restart Visual Studio Code to activate the extension. For more information, see the Visual Studio Code C# Extension documentation.
Get started
In this tutorial, you create three projects: a library project, tests for that library project, and a console application that makes use of the library. You can view or download the source for this topic at the dotnet/samples repository on GitHub. For download instructions, see Samples and Tutorials.
Start Visual Studio Code. Press Ctrl+` (the backquote or backtick character) or select View > Integrated Terminal from the menu to open an embedded terminal in Visual Studio Code. You can still open an external shell with the Explorer Open in Command Prompt command (Open in Terminal on Mac or Linux) if you prefer to work outside of Visual Studio Code.
Begin by creating a solution file, which serves as a container for one or more .NET Core projects. In the terminal, run the dotnet new
command to create a new solution golden.sln inside a new folder named golden:
Vs Code For Mac Tfs
Navigate to the new golden folder and execute the following command to create a library project, which produces two files,library.csproj and Class1.cs, in the library folder:
Execute the dotnet sln
command to add the newly created library.csproj project to the solution:
The library.csproj file contains the following information:
Our library methods serialize and deserialize objects in JSON format. To support JSON serialization and deserialization, add a reference to the Newtonsoft.Json
NuGet package. The dotnet add
command adds new items to a project. To add a reference to a NuGet package, use the dotnet add package
command and specify the name of the package:
This adds Newtonsoft.Json
and its dependencies to the library project. Alternatively, manually edit the library.csproj file and add the following node:
Execute dotnet restore
, (see note) which restores dependencies and creates an obj folder inside library with three files in it, including a project.assets.json file:
In the library folder, rename the file Class1.cs to Thing.cs. Replace the code with the following:
The Thing
class contains one public method, Get
, which returns the sum of two numbers but does so by converting the sum into a string and then deserializing it into an integer. This makes use of a number of modern C# features, such as using static
directives, expression-bodied members, and string interpolation.
Build the library with the dotnet build
command. This produces a library.dll file under golden/library/bin/Debug/netstandard1.4:
Create the test project
Build a test project for the library. From the golden folder, create a new test project:
Add the test project to the solution:
Add a project reference the library you created in the previous section so that the compiler can find and use the library project. Use the dotnet add reference
command:
Alternatively, manually edit the test-library.csproj file and add the following node:
Now that the dependencies have been properly configured, create the tests for your library. Open UnitTest1.cs and replace its contents with the following code:
Note that you assert the value 42 is not equal to 19+23 (or 42) when you first create the unit test (Assert.NotEqual
), which will fail. An important step in building unit tests is to create the test to fail once first to confirm its logic.
From the golden folder, execute the following commands:
These commands will recursively find all projects to restore dependencies, build them, and activate the xUnit test runner to run the tests. The single test fails, as you expect.
Edit the UnitTest1.cs file and change the assertion from Assert.NotEqual
to Assert.Equal
. Execute the following command from the golden folder to re-run the test, which passes this time:
Create the console app
The console app you create over the following steps takes a dependency on the library project you created earlier and calls its library method when it runs. Using this pattern of development, you see how to create reusable libraries for multiple projects.
Create a new console application from the golden folder:
Add the console app project to the solution:
Create the dependency on the library by running the dotnet add reference
command:
Run dotnet restore
(see note) to restore the dependencies of the three projects in the solution. Open Program.cs and replace the contents of the Main
method with the following line:
Add two using
directives to the top of the Program.cs file:
Execute the following dotnet run
command to run the executable, where the -p
option to dotnet run
specifies the project for the main application. The app produces the string 'The answer is 42'.
Download Vs Code For Mac
Debug the application
Set a breakpoint at the WriteLine
statement in the Main
method. Do this by either pressing the F9 key when the cursor is over the WriteLine
line or by clicking the mouse in the left margin on the line where you want to set the breakpoint. A red circle will appear in the margin next to the line of code. When the breakpoint is reached, code execution will stop before the breakpoint line is executed.
Open the debugger tab by selecting the Debug icon in the Visual Studio Code toolbar, selecting View > Debug from the menu bar, or using the keyboard shortcut CTRL+SHIFT+D:
Press the Play button to start the application under the debugger. The app begins execution and runs to the breakpoint, where it stops. Step into the Get
method and make sure that you have passed in the correct arguments. Confirm that the answer is 42.
Note
Vs Code For Mac Git
Starting with .NET Core 2.0 SDK, you don't have to run dotnet restore
because it's run implicitly by all commands that require a restore to occur, such as dotnet new
, dotnet build
and dotnet run
.It's still a valid command in certain scenarios where doing an explicit restore makes sense, such as continuous integration builds in Azure DevOps Services or in build systems that need to explicitly control the time at which the restore occurs.