Bir .NET projesini Visual Studio yüklü olmadan nasıl derleyebilirim?


36

Bir .NET / C # projesi derlemek istiyorum, ancak bunu yapmak için Visual Studio'yu yüklemek istemiyorum.

Hangi araçlara ihtiyacım var ve projeyi nasıl derleyebilirim?


Visual Studio Express sizin için işe yaramaz mı?
svick

1
@svick: Projeyi derlemek için ihtiyacım olursa , o zaman kullanırdım. Ancak bu durumda gerekli değildir, bu yüzden projeyi uygulamak istediğim her makineye yüklemek zorunda değilim. VCS'den bir kopyasını çıkarabilir, derleyebilir ve çalıştırabilirim. VS Express'in kurulması tüm süreci aşırı karmaşık hale getirirdi.
Der Hochstapler

Bu durumda, daha basit bir çözüm derlenmiş bir derleme dağıtmak olabilir. Bu şekilde, her makinede herhangi bir derleme yapmanız gerekmez.
svick

@svick: Anlayışınız için teşekkürler, ancak ikili dosyaları dağıtmak aklımdan kısaca geçti. Bu durumda yararlı bir alternatif olarak düşünseydim, bunu yapardım. Söyleniyor, bu soru ve cevap basitçe bir süreci tanımlamak için gönderildi. Bu sürecin kullanıcılar davasına gitme yolunun olup olmadığına karar vermek, kendilerine bırakılan bir karardır.
Der Hochstapler

Yanıtlar:


37
  1. En son .NET Framework'ü indirin ve yükleyin.
    Örneğin, .NET Framework 4.5 yükleyicisinin yükleyicisini kullanabilirsiniz .

  2. Bir komut istemi açın ve .NET Framework'ün kurulum dizinine geçin.
    Örneğin:

    cd \Windows\Microsoft.NET\Framework\v4*
    
  3. MSBuild.exeÇözümünüzü derlemek için kullanın .
    Örneğin:

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

Projede NuGet paketleri kullanılıyorsa, bunları almak için aşağıdaki adımları uygulayabilirsiniz:

  1. NuGet.exe Komut Satırı yükselticisini indirin ve örneğin, çözüm dizininin içine yerleştirin.

  2. Bir komut istemi açın ve çözüm dizinine geçin.
    Örneğin:

    cd "C:\Users\Oliver\Documents\My Project"
    
  3. Çağır NuGet.exebu çözüm için gerekli paketleri güncellemek için:

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

Güzel! Herhangi bir MSBuild dokümantasyon bağlantısı var mı? Ayrıca, bu zaten sahip olduğu bir VS projesi için değil mi? .CS'de veya diğer kaynak dosyalarda kod derlemeye ne dersiniz?
Karan

2
@Karan - Bu makaleye dayanarak bir cevap vermek isteyen herkes msdn.microsoft.com/en-us/library/vstudio/78f4aasd.aspx ?
Ramhound

@Ramhound: Sanırım bilgili biri, bütün bunları tek bir SSS tipi cevaba ekleyebilir. Ayrıca ele alınabilecek bazı takip soruları. Csc.exe ayrıca bir son kullanıcı .NET framework yüklemesiyle birlikte verilir mi? Yalnızca Müşteri Profilini yüklerseniz dahil mi?
Karan

1
@Karan: MSBuild.exeKomut satırı argüman dokümantasyonuna bir link ekledim . Evet, bu zaten yerel makinede bulunan bir proje içindir (belki GitHub'dan indirilebilir). Ramhound'un belirttiği gibi, csc.exetekli dosyaları derlemek için go-to-tool olacaktır. csc.exe.NET Framework ile birlikte paketlenmiştir. Bu çekirdek C # derleyicisi ve MSBuild muhtemelen onu çağırıyor. Müşteri profili hakkında emin değilim, ancak onların da dahil olduğunu varsayardım.
Der Hochstapler

1
csc.exeDahil edilmesi gereken sebeplerden biri , Müşteri Profili'nin XmlSerializersınıfı içermesidir . Bu sınıf csc.exe, çalışma zamanında seri hale getirme derlemeleri (kullanarak ) oluşturur .
heavyd

3

Visual Studio'yu kurmaktan kaçınmak istiyorsanız , platformlar arası ve açık kaynaklı bir .NET çalışma zamanı ve geliştirme çerçevesi olan Mono'yu denemek isteyebilirsiniz . Mono, C # için yayınlanan ECMA standardını temel alır ve önceden derlenmiş C # uygulamaları ile doğrudan uyumludur.

Mono ayrıca, MSBuild'in tamamen yerini alabilen XBuild adlı bir araç içerir . Bir projenin MSBuild'den XBuild'e taşınmasıyla ilgili Mono projesinden bu makaleye bakın . Wiki'den XBuild'in bir satırlık açıklaması:

xbuild, Mono'nun msbuild'in uygulamasıdır ve msbuild dosyası olan projelerin yerel olarak Linux'ta derlenmesini sağlar.

Linux'a ek olarak, Windows ve Mac OS X'in de desteklendiğini unutmayın.


1
Birinin monopencerelerde kullanmasının bir nedeni var mı ?
Rishav

2
@Rishav Politik düşünceler? Belki de Windows'u kullanması gereken ancak mümkün olduğu kadar az Microsoft teknolojisini kullanmak isteyen biri için. Sadece spekülasyon yapıyor.
Jamie
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.