Tutorial: Publish a .NET console application using Visual Studio for Mac


Microsoft has announced the retirement of Visual Studio for Mac. Visual Studio for Mac will no longer be supported starting August 31, 2024. Alternatives include:

  • Visual Studio Code with the C# Dev Kit and related extensions, such as .NET MAUI and Unity.
  • Visual Studio running on Windows in a VM on Mac.
  • Visual Studio running on Windows in a VM in the Cloud.

For more information, see Visual Studio for Mac retirement announcement.

This tutorial shows how to publish a console app so that other users can run it. Publishing creates the set of files that are needed to run your application. To deploy the files, copy them to the target machine.


Publish the app

  1. Start Visual Studio for Mac.

  2. Open the HelloWorld project that you created in Create a .NET console application using Visual Studio for Mac.

  3. Make sure that Visual Studio is building the Release version of your application. If necessary, change the build configuration setting on the toolbar from Debug to Release.

    Visual Studio toolbar with release build selected

  4. From the main menu, choose Build > Publish to Folder....

    Visual Studio Publish context menu

  5. In the Publish to Folder dialog, select Publish.

    Visual Studio Publish to Folder dialog

    The publish folder opens, showing the files that were created.

    publish folder

  6. Select the gear icon, and select Copy "publish" as Pathname from the context menu.

    Copy path to publish folder

Inspect the files

The publishing process creates a framework-dependent deployment, which is a type of deployment where the published application runs on a machine that has the .NET runtime installed. Users can run the published app by running the dotnet HelloWorld.dll command from a command prompt.

As the preceding image shows, the published output includes the following files:

  • HelloWorld.deps.json

    This is the application's runtime dependencies file. It defines the .NET components and the libraries (including the dynamic link library that contains your application) needed to run the app. For more information, see Runtime configuration files.

  • HelloWorld.dll

    This is the framework-dependent deployment version of the application. To execute this dynamic link library, enter dotnet HelloWorld.dll at a command prompt. This method of running the app works on any platform that has the .NET runtime installed.

  • HelloWorld.pdb (optional for deployment)

    This is the debug symbols file. You aren't required to deploy this file along with your application, although you should save it in the event that you need to debug the published version of your application.

  • HelloWorld.runtimeconfig.json

    This is the application's runtime configuration file. It identifies the version of .NET that your application was built to run on. You can also add configuration options to it. For more information, see .NET runtime configuration settings.

Run the published app

  1. Open a terminal and navigate to the publish folder. To do that, enter cd and then paste the path that you copied earlier. For example:

    cd ~/Projects/HelloWorld/HelloWorld/bin/Release/net5.0/publish/
  2. Run the app by using the dotnet command:

    1. Enter dotnet HelloWorld.dll and press enter.

    2. Enter a name in response to the prompt, and press any key to exit.

Additional resources

Next steps

In this tutorial, you published a console app. In the next tutorial, you create a class library.