Introduction to Mono on macOS
Mono supports macOS version 10.9 (Mavericks) and later.
You can use Mono on macOS to build server, console and GUI applications. Read below for the options available for GUI application development.
- Drag Visual Studio Code.app to the Applications folder, making it available in the macOS Launchpad. Add VS Code to your Dock by right-clicking on the icon to bring up the context menu and choosing Options, Keep in Dock. Launching from the command line. You can also run VS Code from the terminal by typing 'code' after adding it to the path.
- There is an option to set apps to launch at startup on a Mac from the Dock menu in case the app you are looking to set in the startup is already present in the dock menu. But the Dock menu contains two types of apps. One is the fixed apps that are always present there and the other apps are presently running. However, the process is same for.
If you want to add an app's icon to your Dock to make opening the app easier, read: How to add apps to the Dock on Mac. Check the Force Quit Applications menu Press Cmd + Alt + Escape to see the. Introducing CrossOver Chrome OS! Run Windows programs that are not available in the Google Play store alongside mobile apps. Scrap remote sessions with multiple users. Run utility software like Quicken and Microsoft Office, or DirectX games, like Wizard101. And bonus: Games from your Steam library will run with CrossOver Chrome OS at native speeds. The downside here is that you can’t run macOS applications and Windows applications side-by-side at the same time. If you just want to run a Windows desktop application alongside your Mac applications, a virtual machine will probably be ideal. On the other hand, if you want to play the latest Windows games on your Mac, Boot Camp will be ideal.
If you are interested in creating native GUI applications, use the MonoMac bindings and our MonoDevelop add-in. Read the description on MonoMac for more information on how to get started.
Run C App On Macbook
Installing Mono on macOS
You can use Mono either as a runtime to run existing application, or as an SDK to develop new applications with Mono.
Visit the download page to find the latest macOS package. Run it and follow the instructions there, you can either get a basic runtime, or a complete runtime plus a software development kit.
If you plan on developing applications with Mono, we suggest that you also install the MonoDevelop IDE after you install Mono.
The Mono package includes:
- The Mono Runtime
- GUI Toolkits: Windows.Forms and Gtk# for macOS.
- Note: the MonoMac GUI toolkit for native macOS GUI development is currently a separate download.
- SDK: C#, Visual Basic compilers, assemblers and tools
- XSP ASP.NET server
- Manual pages.
This package installs as a framework into
/Library/Frameworks/Mono.framework
(the same way the Java packages are installed). The executable binaries can be found in /Library/Frameworks/Mono.framework/Versions/Current/bin
. If you’d like to access the mono manpages you’ll have to add /Library/Frameworks/Mono.framework/Versions/Current/man
to your manpath. The macOS Mono package does not include Gtk#, XSP or mod_mono. These will have to be compiled from source.Our packages currently require macOS 10.9 or better, for older versions, you will need to build from source code.
Using Mono on macOS
At this point, you must use Mono from the command line, the usual set of commands that are available on other ports of Mono are available.
To build applications you can use “mcs”, to run then you can use mono.
From a Terminal shell, you can try it out:
Most users would be using the MonoDevelop IDE to create their projects.
You will have a choice of GUI toolkits for building your application, from pure cross platform, to Mac-specific using MonoMac.
32 and 64 bit support
The Mono packages published on this web site provide both a 32-bit and a 64-bit Mono VM.
Starting from Mono 5.2 the
mono
command defaults to 64-bit, you can use the --arch=32/64
switch to control the bitness.The 64 bit support has a few limitations today:
- Our Windows.Forms implementation uses Carbon, and as such, it would not work with a 64-bit Mono.
Building Client Applications
There are a few choices to build client applications on macOS, you should pick the technology that better fits your goals, your choices are:
Toolkit | Runs on Linux | Runs on Windows | Runs on Mac | Binding Style | License | Status |
MonoMac | no | no | yes | Strongly typed C# binding to Cocoa APIs | MIT X11 | Actively developed, builds on the design lessons from MonoTouch but still incomplete. This will be the new default binding for Mono on macOS. Separate download. |
Gtk# | yes | yes | yes | Strongly typed C# binding to the cross platform Gtk+ API. Applications look foreign on macOS. | LGPL v2 | Actively developed, cross platform. Bundled with Mono. |
Windows.Forms | yes | yes | yes | Cross platform implementation of Microsoft’s Windows.Forms. Applications look foreign on macOS. | MIT X11 | The Windows.Forms API was frozen in time by Microsoft. Bundled with Mono. |
MonObjc | no | no | yes | Binding to the native Cocoa APIs, but requires manual use of Objective-C selectors to work with, relatively thin wrapper around the underlying APIs. | LGPL v3 | Actively developed. Separate download. |
CocoaSharp | no | no | yes | Binding to the native Cocoa APIs, but requires manual use of Objective-C selectors to work with, relatively thin wrapper around the underlying APIs. | MIT X11 | No longer developed, no longer maintained, deprecated. Bundled with Mono. |
Running Mono applications on macOS
Sideload apps on mac. Running applications on macOS is very similar to linux systems, from the terminal:
For GTK# applications, it’s easiest to run them the same way but using xterm from X11.app
Windows.Forms
Mono’s implementation of the System.Windows.Forms API is built on top of Carbon and can only run with Mono on 32 bit systems. The look and feel of System.Windows.Forms applications mimics the Windows style and does not currently render like a native macOS application.
Third Party Libraries
ObjC# is a transparent two way bridge that allows the CLR to access the rich underlying ObjectiveC frameworks as well as providing direct access to the CLR frameworks from the ObjectiveC language.
Uninstalling Mono on macOS
Run this script in a terminal:
Installation
- Download Visual Studio Code for macOS.
- Open the browser's download list and locate the downloaded archive.
- Select the 'magnifying glass' icon to open the archive in Finder.
- Drag
Visual Studio Code.app
to theApplications
folder, making it available in the macOS Launchpad. - Add VS Code to your Dock by right-clicking on the icon to bring up the context menu and choosing Options, Keep in Dock.
Launching from the command line
You can also run VS Code from the terminal by typing 'code' after adding it to the path:
- Launch VS Code.
- Open the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) and type 'shell command' to find the Shell Command: Install 'code' command in PATH command.
- Restart the terminal for the new
$PATH
value to take effect. You'll be able to type 'code .' in any folder to start editing files in that folder.
Note: If you still have the old
code
alias in your .bash_profile
(or equivalent) from an early VS Code version, remove it and replace it by executing the Shell Command: Install 'code' command in PATH command.Alternative manual instructions
Instead of running the command above, you can manually add VS Code to your path, to do so run the following commands:
Start a new terminal to pick up your
.bash_profile
changes.Note: The leading slash
is required to prevent $PATH
from expanding during the concatenation. Remove the leading slash if you want to run the export command directly in a terminal.Note: Since
zsh
became the default shell in macOS Catalina, run the following commands to add VS Code to your path: Mac move app bar.Touch Bar support
Out of the box VS Code adds actions to navigate in editor history as well as the full Debug tool bar to control the debugger on your Touch Bar:
Mojave privacy protections
After upgrading to macOS Mojave version, you may see dialogs saying 'Visual Studio Code would like to access your {calendar/contacts/photos}.' This is due to the new privacy protections in Mojave and is not specific to VS Code. The same dialogs may be displayed when running other applications as well. The dialog is shown once for each type of personal data and it is fine to choose Don't Allow since VS Code does not need access to those folders. You can read a more detailed explanation in this blog post.
Updates
VS Code ships monthly releases and supports auto-update when a new release is available. If you're prompted by VS Code, accept the newest update and it will get installed (you won't need to do anything else to get the latest bits).
Note: You can disable auto-update if you prefer to update VS Code on your own schedule.
Preferences menu
You can configure VS Code through settings, color themes, and custom keybindings and you will often see mention of the File > Preferences menu group. On a macOS, the Preferences menu group is under Code, not File.
Next steps
Install C++ On Mac
Once you have installed VS Code, these topics will help you learn more about VS Code:
Run C App On Mac Os
- Additional Components - Learn how to install Git, Node.js, TypeScript, and tools like Yeoman.
- User Interface - A quick orientation around VS Code.
- User/Workspace Settings - Learn how to configure VS Code to your preferences settings.
Common questions
Why do I see 'Visual Studio Code would like access to your calendar.'
Run C App On Mac Computer
If you are running macOS Mojave version, you may see dialogs saying 'Visual Studio Code would like to access your {calendar/contacts/photos}.' This is due to the new privacy protections in Mojave discussed above. It is fine to choose Don't Allow since VS Code does not need access to those folders.
VS Code fails to update
If VS Code doesn't update once it restarts, it might be set under quarantine by macOS. Follow the steps in this issue for resolution.