Puis-je compiler du code .NET C # sur mon Mac?

22

J'ai besoin d'un moyen de compiler de manière croisée un court morceau de code .NET C # vers une DLL, qui exécutera ensuite l'environnement Windows d'un client.

J'exécute OS X 10.9.2 sur un iMac.

Quelqu'un sait-il quels outils permettent cela?

Je préfère ne pas installer Parallels et Windows si je peux trouver un moyen de compiler cela sans avoir besoin d'une telle installation d'outils Microsoft.

Jagra
la source

Réponses:

21

Découvrez le projet mono. C'est peut-être ce que vous recherchez.

http://www.mono-project.com/Mono:OSX

MonoDevelop est un IDE multiplateforme principalement conçu pour C # et d'autres langages .NET. MonoDevelop permet aux développeurs d'écrire rapidement des applications Web de bureau et ASP.NET sur Linux, Windows et Mac OSX. MonoDevelop permet aux développeurs de porter facilement les applications .NET créées avec Visual Studio vers Linux et Mac OSX en conservant une base de code unique pour toutes les plates-formes.

niveau42
la source
monodevelop.com MonoDevelop est un IDE multiplateforme principalement conçu pour C # et d'autres langages .NET. MonoDevelop permet aux développeurs d'écrire rapidement des applications Web de bureau et ASP.NET sur Linux, Windows et Mac OSX. MonoDevelop permet aux développeurs de porter facilement les applications .NET créées avec Visual Studio vers Linux et Mac OSX en conservant une base de code unique pour toutes les plates-formes. - Si vous ne pouvez pas compiler correctement votre code avec MonoDevelop, vous n'avez peut-être pas d'autre choix que d'exécuter une machine virtuelle.
level42
Thx, j'ai regardé Mono, mais alors que cela devrait fonctionner, je n'ai trouvé aucun "mode d'emploi" clair pour l'installer ou l'utiliser.
Jagra
1
@Jagra Il y a quelques vidéos de tutoriel ici: youtube.com/results?search_query=monodevelop+install+mac
level42
1
Juste pour aplanir tout doute: oui , si vous compilez une DLL sur Mono, elle s'exécutera sur Windows sans aucune modification, étant donné que vous n'utilisez pas de bibliothèques Mono spécifiques , telles que Mono.Addin ou Mono.Simd. Cela va aussi dans les deux sens - une DLL / EXE compilée sur Visual Studio s'exécutera sans modification sur Mono, étant donné que vous n'utilisez pas de bibliothèques Microsoft / Windows spécifiques telles que WPF, Workflow Foundation, COM + etc.
NothingsImpossible
1
@Jagra: Une fois que vous avez installé Mono (et MonoDevelop si vous le souhaitez) à partir de go-mono.com/mono-downloads/download.html , il est très facile à utiliser. Même sans MonoDevelop, vous devriez pouvoir compiler la plupart des projets .sln directement à partir de Visual Studio, en utilisant xbuild.
Jwosty
8

Si vous avez un Mac, vous pouvez compiler C # comme ceci:

Compiler: mcs fileName.cs
exécuter:mono fileName.exe

Si Mono n'est pas installé sur votre Mac, vous pouvez le rechercher sur Google et l'installer, puis vous serez prêt à partir. Vous n'avez pas besoin de Windows pour cela.

dany
la source
5

Vous pouvez l'installer avec homebrew :

brew install mono

Ensuite, vous pouvez l'utiliser avec:

mcs hello.cs
mono hello.exe
Dorian
la source
1

Aucune expérience personnelle avec cet IDE mais cela semble fonctionner: http://monodevelop.com

atldeadhead
la source
1

Puis-je compiler du code .NET C # sur mon Mac?

Vous pouvez compiler du code C # oui.

Je préfère ne pas installer Parallels et Windows si je peux trouver un moyen de compiler cela sans avoir besoin d'une telle installation d'outils Microsoft.

Mono n'a pas une compatibilité à 100% avec l'implémentation .NET.

La Common Language Infrastructure (CLI) est un cadre pour l'exécution de code managé. La CLI se compose de plusieurs parties, dont un système d'exécution virtuel (VES). Le VES de .NET est le Common Language Runtime. Mono possède sa propre implémentation VES distincte.

En d'autres termes, ne vous attendez pas à tout le moins à exécuter du code qui n'a été testé que dans un environnement * nix / OSX sans s'exécuter sur un environnement Windows .

P.Brian.Mackey
la source