Bagaimana saya bisa mengkompilasi proyek .NET tanpa menginstal Visual Studio?

36

Saya ingin mengkompilasi proyek .NET / C #, tetapi saya tidak ingin menginstal Visual Studio untuk melakukan ini.

Alat apa yang saya butuhkan dan bagaimana saya bisa mengkompilasi proyek?

Der Hochstapler
sumber
Tidakkah Visual Studio Express akan bekerja untuk Anda?
svick
1
@vick: Jika saya perlu memilikinya untuk mengkompilasi proyek, maka saya akan menggunakannya. Tetapi dalam hal ini tidak perlu, jadi saya tidak harus menginstalnya pada setiap mesin di mana saya ingin menyebarkan proyek. Saya cukup menarik salinan dari VCS, kompilasi dan jalankan. Memasang VS Express akan membuat keseluruhan proses menjadi terlalu rumit.
Der Hochstapler
Dalam hal itu, solusi yang lebih sederhana mungkin menggunakan perakitan yang dikompilasi. Dengan begitu, Anda tidak perlu melakukan kompilasi di setiap mesin.
svick
@svick: Terima kasih atas wawasan Anda, tetapi menyebarkan binari secara singkat terlintas di pikiran saya juga. Jika saya menganggapnya sebagai alternatif yang bermanfaat dalam kasus ini, saya akan melakukannya. Yang sedang berkata, pertanyaan dan jawaban ini diposting untuk hanya menggambarkan suatu proses. Memutuskan apakah proses ini adalah cara untuk pergi dalam kasus pengguna adalah keputusan yang diserahkan kepada mereka.
Der Hochstapler

Jawaban:

37
  1. Unduh dan instal .NET Framework terbaru.
    Misalnya, Anda dapat menggunakan pemasang untuk pemasang .NET Framework 4.5 .

  2. Buka prompt perintah dan ubah ke direktori instalasi .NET Framework.
    Sebagai contoh:

    cd \Windows\Microsoft.NET\Framework\v4*
    
  3. Gunakan MSBuild.exeuntuk mengkompilasi solusi Anda.
    Sebagai contoh:

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

Jika proyek menggunakan paket NuGet, Anda dapat mengikuti langkah-langkah ini untuk mengambilnya:

  1. Unduh boostrapper NuGet.exe Command Line dan, misalnya, letakkan di dalam direktori solusi.

  2. Buka prompt perintah dan ubah ke direktori solusi.
    Sebagai contoh:

    cd "C:\Users\Oliver\Documents\My Project"
    
  3. Meminta NuGet.exeuntuk memperbarui paket yang diperlukan untuk solusi ini:

    NuGet.exe install "My Project/packages.config" -o packages/
    
Der Hochstapler
sumber
Bagus! Adakah tautan dokumentasi MSBuild? Juga, ini untuk proyek VS yang sudah dimiliki, kan? Bagaimana dengan mengkompilasi kode dalam .CS atau file sumber lainnya?
Karan
2
@Karan - Adakah yang mau membuat jawaban berdasarkan artikel ini msdn.microsoft.com/en-us/library/vstudio/78f4aasd.aspx ?
Ramhound
@Ramhound: Saya kira seseorang yang berpengetahuan luas bisa juga memasukkan semua ini ke dalam satu jenis jawaban FAQ. Juga beberapa pertanyaan lanjutan yang dapat diatasi. Apakah csc.exe juga dibundel dengan pengguna .NET framework install? Apakah itu termasuk jika Anda hanya menginstal Profil Klien?
Karan
1
@Karan: Saya telah menambahkan tautan ke MSBuild.exedokumentasi argumen baris perintah. Ya, ini untuk proyek yang sudah ada di komputer lokal (mungkin diunduh dari GitHub). Seperti Ramhound menyebutkan, csc.exeakan menjadi alat untuk mengkompilasi file tunggal. csc.exedibundel dengan .NET Framework juga. Ini adalah kompiler C # inti dan MSBuild mungkin hanya memanggilnya. Tidak yakin tentang profil klien, tetapi saya akan menganggap mereka termasuk di dalamnya.
Der Hochstapler
1
Salah satu alasan yang csc.exeperlu dimasukkan adalah karena Profil Klien termasuk XmlSerializerkelas. Kelas ini menghasilkan rakitan serialisasi (menggunakan csc.exe) pada saat run-time.
heavyd
3

Jika Anda ingin menghindari menginstal Visual Studio, Anda mungkin ingin mencoba Mono , cross-platform dan open source .NET runtime dan framework pengembangan. Mono didasarkan pada standar ECMA yang diterbitkan untuk C # dan secara langsung kompatibel dengan aplikasi C # yang telah dikompilasi sebelumnya.

Mono juga menyertakan alat yang disebut XBuild yang sepenuhnya dapat menggantikan MSBuild. Lihat artikel ini dari proyek Mono tentang porting proyek dari MSBuild ke XBuild. Deskripsi satu baris XBuild dari Wiki:

xbuild adalah implementasi msbuild dari Mono dan memungkinkan proyek yang memiliki file msbuild untuk dikompilasi secara native di Linux.

Perhatikan bahwa selain Linux, Windows dan Mac OS X juga didukung.

Penerobosan
sumber
1
Apakah ada alasan yang akan digunakan monopada windows?
Rishav
2
@Rishav Pertimbangan politik? Mungkin untuk orang yang diharuskan menggunakan Windows tetapi ingin menggunakan sesedikit mungkin teknologi Microsoft lainnya. Hanya berspekulasi.
Jamie