Come posso compilare un progetto .NET senza avere installato Visual Studio?


36

Voglio compilare un progetto .NET / C #, ma non voglio installare Visual Studio per farlo.

Di quali strumenti ho bisogno e come posso compilare il progetto?


Visual Studio Express non funzionerà per te?
svick,

1
@svick: Se avessi bisogno di avere a compilare il progetto, quindi vorrei usarlo. Ma in questo caso non è necessario, quindi non devo installarlo su tutte le macchine su cui voglio distribuire il progetto. Posso semplicemente estrarre una copia dal VCS, compilarlo ed eseguirlo. L'installazione di VS Express avrebbe complicato eccessivamente l'intero processo.
Der Hochstapler,

In tal caso, una soluzione più semplice potrebbe essere la distribuzione di un assembly compilato. In questo modo, non è necessario eseguire alcuna compilazione su ogni macchina.
svick,

@svick: Grazie per la tua comprensione, ma anche la distribuzione dei binari mi è venuta in mente brevemente. Se lo avessi considerato un'alternativa benefica in questo caso, l'avrei fatto. Detto questo, questa domanda e risposta sono state pubblicate per descrivere semplicemente un processo. Decidere se questo processo è la strada da percorrere nel caso degli utenti è una decisione lasciata a loro.
Der Hochstapler,

Risposte:


37
  1. Scarica e installa l'ultimo .NET Framework.
    Ad esempio, è possibile utilizzare il programma di installazione per il programma di installazione di .NET Framework 4.5 .

  2. Aprire un prompt dei comandi e passare alla directory di installazione di .NET Framework.
    Per esempio:

    cd \Windows\Microsoft.NET\Framework\v4*
    
  3. Utilizzare MSBuild.exeper compilare la soluzione.
    Per esempio:

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

Nel caso in cui il progetto utilizzi i pacchetti NuGet, è possibile seguire questi passaggi per recuperarli:

  1. Scarica il boostrapper della riga di comando NuGet.exe e, ad esempio, inseriscilo nella directory della soluzione.

  2. Aprire un prompt dei comandi e passare alla directory della soluzione.
    Per esempio:

    cd "C:\Users\Oliver\Documents\My Project"
    
  3. Richiamare NuGet.exeper aggiornare i pacchetti richiesti per questa soluzione:

    NuGet.exe install "My Project/packages.config" -o packages/
    

Bello! Qualche collegamento alla documentazione di MSBuild? Inoltre, questo è per un progetto VS che uno ha già, giusto? Che ne dici di compilare il codice in .CS o altri file sorgente?
Karan,

2
@Karan - Qualcuno si preoccupa di dare una risposta sulla base di questo articolo msdn.microsoft.com/en-us/library/vstudio/78f4aasd.aspx ?
Ramhound,

@Ramhound: immagino che qualcuno ben informato possa anche incorporare tutto questo in una singola risposta di tipo FAQ. Anche alcune domande di follow-up che possono essere indirizzate. Csc.exe è anche associato a un'installazione .NET framework per l'utente finale? È incluso se si installa solo il profilo client?
Karan,

1
@Karan: ho aggiunto un link alla MSBuild.exedocumentazione dell'argomento della riga di comando. Sì, questo è per un progetto che è già sul computer locale (forse scaricato da GitHub). Come ricorda Ramhound, csc.exesarebbe lo strumento ideale per compilare singoli file. csc.exeè anche in bundle con .NET Framework. È il compilatore C # di base e MSBuild probabilmente lo invoca semplicemente. Non sono sicuro del profilo del cliente, ma suppongo che siano inclusi con esso.
Der Hochstapler,

1
Un motivo che csc.exedeve essere incluso è perché il profilo client include la XmlSerializerclasse. Questa classe genera assiemi di serializzazione (usando csc.exe) in fase di esecuzione.
pesante

3

Se si desidera evitare l'installazione di Visual Studio, è possibile provare Mono , un framework di sviluppo e runtime .NET multipiattaforma e open source. Mono si basa sullo standard ECMA pubblicato per C # ed è direttamente compatibile con le applicazioni C # precompilate.

Mono include anche uno strumento chiamato XBuild che può sostituire completamente MSBuild. Vedi questo articolo del progetto Mono relativo al porting di un progetto da MSBuild a XBuild. Una descrizione di una riga di XBuild dal Wiki:

xbuild è l'implementazione di Mono di msbuild e consente di compilare nativamente su Linux progetti che hanno un file msbuild.

Oltre a Linux, sono supportati anche Windows e Mac OS X.


1
C'è qualche motivo che si dovrebbe usare monosu Windows?
Rishav,

2
@Rishav Considerazioni politiche? Forse per chi è tenuto ad usare Windows ma vuole usare il minor numero possibile di altre tecnologie Microsoft. Solo speculazioni, però.
Jamie,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.