C# Komut Satırı Derleyicisi (csc.exe) ve Responce Files Kavramı
Komut Satırı Derleyicisi (csc.exe) Nedir?
Visual Studio veya benzer IDE’ler kullanarak yaptığımız
derleme işlemini csc.exe’yi kullanarak komut satırı üzerinden yapabiliriz.
C# komut satırı derleyicisi .NET Framework SDK ile birlikte
ücretsiz olarak dağıtılmaktadır. Dolayısıyla .NET ortamında uygulama
geliştirmek için www.microsoft.com sitesinden .NET Farmework SDK’nın son
sürümünü bilgisayarınıza indirip kullanmaya başlayabilirsiniz.
Öncelikle komut satırı ile derleme yapabilmemiz için csc.exe
dosyasının bulunduğu dizini sistem özelliklerinde tanımlamamız gerekmektedir.
Bu işlemi şu şekilde yapabiliriz:
Not: Windows 7 üzerindeki ayarları anlatıyor olsam
da diğer işletim sistemlerinde de benzer şekilde yapılmaktadır.
Control Panel -> System and Security -> System ->
Advanced system settings
Buraya tıklanarak aşağıdaki ekrana ulaşabiliriz.
Buradan “Environment Variables” butonuna tıkladığınızda
karşınıza çıkacak olan aşağıdaki ekrandan "System Variables"
alanından Path seçeneğini seçin.
Path seçecenği tıklanarak açılan penceredeki Variable value
alanının sonuna ; karakterini ekledikten sonra csc.exe dosyasının bulunduğu
dizini yazın. csc.exe dosyası kullandığınız işletim sistemini göre değişiklik
gösterebilir ancak genellikle aşağıdaki gibidir.
C:\WINDOWS\Microsoft.NET\Framework\ v4.0.30319
Son dizin kullandığınız Framework’un versiyon numarasını göstermektedir.
C:\WINDOWS\Microsoft.NET\Framework\ v4.0.30319
Son dizin kullandığınız Framework’un versiyon numarasını göstermektedir.
Bu işlemleri doğru bir şekilde yaptığımızda komut satırı
üzerinden programlarımızı derleyebilecek hale geldik demektir. Şimdi bu derleme
işlemi nasıl yapılıyor ona bakalım.
Derleme İşlemi Nasıl Yapılır?
Öncelikle aşağıdaki kod parçacığını bir Notepad açarak
içerisine kopyalayıp TestApp.cs olarak kaydedelim.
// A simple C# application.
using System;
class TestApp
{
static void Main()
{
Console.WriteLine("Testing!
1, 2, 3");
}
}
Şimdi Run -> cmd yazarak komut satırını çalıştıralım.
Ardından komut satırında cd ile TestApp.cs dosyasını kaydettiğimiz dizine
gelelim.
csc.exe ile en basit derleme işlemi bir girdi dosya ve çıktı
dosya belirtme ile yapılır. Örneğin TestApp.cs dosyasını Program.exe şeklinde
derlemek için aşağıdaki komutu çalıştırmamız yeterlidir.
> csc TestApp.cs /out:Program.exe
Eğer out parametresini kullanmayıp komutu
> csc TestApp.cs
> csc TestApp.cs /out:Program.exe
Eğer out parametresini kullanmayıp komutu
> csc TestApp.cs
şeklinde çalıştırsaydık derleme işlemi başarılı olurdu ancak
oluşturulan çalıştırılabilir dosyanın adı TestApp.exe olurdu.
Bu çalışma sonrasında exe oluşmasının nedeni \t:exe parametresi
csc’nin default parametresidir eğer nasıl derleneceği belirtilmez ise csc exe
olarak derler. Eğer kod sonucu bir dll oluşturmak istiyorsak \t:library
kullanırız. Bunun gibi benzer parametreleri aşağıdaki tablodan
inceleyebilirsiniz.
Referans Nasıl Verilir?
Projemizin bir form
application olduğunu düşünelim. Bu durumda projemize ‘System.Windows.Forms.dll’
eklememiz gerekmektedir. Bu durumda” \r:Referans verilen DLL” parametresini
kullanarak bu dll’i referans verebiliriz.
using System;
// Add this!
using System.Windows.Forms;
class TestApp
{
static void Main()
{
Console.WriteLine("Testing!
1, 2, 3");
// Add this!
MessageBox.Show("Hello...");
}
}
csc
/r:System.Windows.Forms.dll TestApp.cs
Birden çok referans
verilecek dll var ise bu durumda ; (noktalı virgül) ile bu dll’ler yazılır.
csc
/r:System.Windows.Forms.dll;System.Drawing.dll TestApp.cs
Eğer birden çok kod
dosyamız var ise bu durumda aralarında boşluk bırakılarak kod dosyaları yazılır.
csc
/r:System.Windows.Forms.dll TestApp.cs HelloMsg.cs
Eğer ki o klasör
içerisindeki tüm kod dosyalarının derlenmesini istiyorsak tek tek dosya isimlerini yazmak yerine * ile
bunu kolayca yapabiliriz.
csc
/r:System.Windows.Forms.dll *.cs
Responce Files
Bu örneklerimizde devamlı tek dosyayı derledik bu kolay bir
işlemdi peki kompleks bir projemiz varsa o kadar referansı parametreyi her
derleyişimizde yazmamış tahmin edersiniz ki çekilmez bir hal alacaktır. Bu
durumda Responce Files kullanabiliriz. Bu dosyalar rsp uzantılıdır ver
içerlerinde derleme için gerekli komutlar tutulur.
Örnek:
# This is the response file
# for the TestApp.exe example
# External assembly references.
/r:System.Windows.Forms.dll
# output and files to compile (using wildcard syntax).
/target:exe
/out:TestApp.exe *.cs
Bu yazılanları Notepad’e
kopyalayıp TestApp.rsp olarak kaydelim. Programımızı derlememiz için rsp
dosyamızın önüne @ işareti koyup csc’yi çalıştırmamız yeterlidir.
csc @TestApp.rsp
Diğer bir örnek
kullanımda şöyle olabilir:
csc /out:MyCoolApp.exe
@TestApp.rsp
fakat bu derleme sonucu
/out: MyCoolApp.exe vermemize rağmen rsp dosyasında tanımladığımız
/out:TestApp.exe dikkate alınır ve TestApp.exe oluşur. Eğer rsp dosyası
içerisindeki bir parametreyi ezmek istiyorsak derleme yapılırken rsp dosya
isminden sonra yazılması gerekmektedir.
csc @TestApp.rsp
/out:MyCoolApp.exe
Default Responce File
csc.exe ile responce
file kullanmadan derleme yaptığımızda default olarak SDK kendi default responce
dosyasını kullanır.csc.rsp dosyası
C:\WINDOWS\Microsoft.NET\Framework\
v4.0.30319
Altında bununur. Bu
dosya bulunup Notepad ile açılıp içeriğine bakılırsa derleme için gerekli
dll’lerin burada tanımlı olduğunu görürüz. Derleme sırasında bu default rsp
dosyasının kullanılmasını istemiyorsak /noconfig parametresini kullanabiliriz.
csc @TestApp.rsp
/noconfig
0 yorum :
Yorum Gönder