Comment puis-je compiler un projet .NET sans avoir Visual Studio installé?

36

Je veux compiler un projet .NET / C #, mais je ne veux pas installer Visual Studio pour ce faire.

De quels outils ai-je besoin et comment puis-je compiler le projet?

Der Hochstapler
la source
Visual Studio Express ne fonctionnera-t-il pas pour vous?
svick
1
@svick: Si j'en avais besoin pour compiler le projet, je l'utiliserais. Mais dans ce cas, ce n'est pas nécessaire, je n'ai donc pas à l'installer sur chaque machine sur laquelle je souhaite déployer le projet. Je peux simplement extraire une copie du VCS, la compiler et l'exécuter. L'installation de VS Express aurait compliqué l'ensemble du processus.
Der Hochstapler
Dans ce cas, une solution plus simple pourrait être de déployer un assembly compilé. De cette façon, vous n'avez pas à effectuer de compilation sur chaque machine.
svick
@svick: Merci pour votre perspicacité, mais le déploiement de binaires m'a brièvement traversé l'esprit. Si je l'avais considéré comme une alternative avantageuse dans ce cas, je l'aurais fait. Cela étant dit, cette question et réponse ont été affichées pour décrire simplement un processus. Décider si ce processus est la voie à suivre dans le cas des utilisateurs est une décision qui leur est laissée.
Der Hochstapler

Réponses:

37
  1. Téléchargez et installez le dernier .NET Framework.
    Par exemple, vous pouvez utiliser le programme d'installation pour le programme d'installation de .NET Framework 4.5 .

  2. Ouvrez une invite de commande et accédez au répertoire d'installation du .NET Framework.
    Par exemple:

    cd \Windows\Microsoft.NET\Framework\v4*
    
  3. Utilisez MSBuild.exepour compiler votre solution.
    Par exemple:

    msbuild "C:\Users\Oliver\Documents\My Project\My Project.sln" /t:Rebuild /p:Configuration=Release /p:Platform="Any CPU"

Si le projet utilise des packages NuGet, vous pouvez suivre ces étapes pour les récupérer:

  1. Téléchargez le boostrapper de ligne de commande NuGet.exe et, par exemple, placez-le dans le répertoire de la solution.

  2. Ouvrez une invite de commande et accédez au répertoire de la solution.
    Par exemple:

    cd "C:\Users\Oliver\Documents\My Project"
    
  3. Appelez NuGet.exepour mettre à jour les packages requis pour cette solution:

    NuGet.exe install "My Project/packages.config" -o packages/
    
Der Hochstapler
la source
Agréable! Des liens vers la documentation MSBuild? C'est aussi pour un projet VS que l'on a déjà, non? Qu'en est-il de la compilation de code dans .CS ou dans d'autres fichiers sources?
Karan
2
@Karan - Quelqu'un souhaite-t-il répondre en se basant sur cet article msdn.microsoft.com/en-us/library/vstudio/78f4aasd.aspx ?
Ramhound
@Ramhound: Je suppose que quelqu'un de bien informé peut également incorporer tout cela dans une seule réponse de type FAQ. Aussi quelques questions de suivi qui peuvent être abordées. Csc.exe est-il également fourni avec une installation du framework .NET pour l'utilisateur final? Est-il inclus si vous installez uniquement le profil client?
Karan
1
@Karan: J'ai ajouté un lien vers la MSBuild.exedocumentation des arguments de la ligne de commande. Oui, c'est pour un projet qui est déjà sur la machine locale (peut-être téléchargé depuis GitHub). Comme le mentionne Ramhound, csc.exeserait l'outil incontournable pour compiler des fichiers uniques. csc.exeest également fourni avec le .NET Framework. C'est le compilateur C # de base et MSBuild vient probablement de l'invoquer. Je ne suis pas sûr du profil du client, mais je suppose qu'ils sont inclus avec.
Der Hochstapler
1
Une raison qui csc.exedoit être incluse est que le profil client inclut la XmlSerializerclasse. Cette classe génère des assemblys de sérialisation (à l'aide csc.exe) au moment de l'exécution.
Heavyd
3

Si vous souhaitez éviter d'installer Visual Studio, vous pouvez essayer Mono , un environnement d'exécution et de développement .NET multiplateforme et open source. Mono est basé sur la norme ECMA publiée pour C # et est directement compatible avec les applications C # précompilées.

Mono comprend également un outil appelé XBuild qui peut remplacer complètement MSBuild. Consultez cet article du projet Mono concernant le portage d'un projet de MSBuild vers XBuild. Une description en ligne de XBuild du Wiki:

xbuild est l'implémentation de msbuild par Mono et il permet aux projets qui ont un fichier msbuild d'être compilés nativement sous Linux.

Notez qu'en plus de Linux, Windows et Mac OS X sont également pris en charge.

Percée
la source
1
Y a-t-il une raison à utiliser monosur Windows?
Rishav
2
@Rishav Considérations politiques? Peut-être pour celui qui doit utiliser Windows mais qui souhaite utiliser le moins possible d'autres technologies Microsoft. Mais je ne fais que spéculer.
Jamie