Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Aşağıdaki seçenekler derleyici tarafından kod oluşturmayı denetler. Yeni MSBuild söz dizimi Kalın olarak gösterilir. Eski csc.exe söz dizimi code style
olarak gösterilir.
-
DebugType /
-debug
: Hata ayıklama bilgilerini yayma (veya yaymama). -
İyileştirme /
-optimize
: İyileştirmeleri etkinleştirin. -
Deterministic /
-deterministic
: Aynı giriş kaynağından bayt için bayt eşdeğeri çıkış üretin. -
ProduceOnlyReferenceAssembly /
-refonly
: Birincil çıkış olarak tam derleme yerine bir başvuru derlemesi oluşturun.
Not
Projeniz için bu seçenekleri yapılandırma hakkında daha fazla bilgi için Derleyici seçenekleri'ne bakın.
Hata Ayıklama Türü
DebugType seçeneği, derleyicinin hata ayıklama bilgileri oluşturmasına ve bunu çıkış dosyasına veya dosyalara yerleştirmesine neden olur. Hata ayıklama bilgileri varsayılan olarak eklenir.
<DebugType>pdbonly</DebugType>
C# 6.0 ile başlayan tüm derleyici sürümleri için pdbonly ile tam arasında bir fark yoktur. Pdbonly'yi seçin. .pdb dosyasının konumunu değiştirmek için bkz. PdbFile.
Aşağıdaki değerler geçerlidir:
Değer | Anlamı |
---|---|
full |
Geçerli platform için varsayılan biçimi kullanarak hata ayıklama bilgilerini .pdb dosyasına aktarın: Windows: Bir Windows pdb dosyası. Linux/macOS: Taşınabilir PDB dosyası. |
pdbonly |
ile full aynı. Daha fazla bilgi için aşağıdaki nota bakın. |
portable |
Platformlar arası Taşınabilir PDB biçimini kullanarak hata ayıklama bilgilerini .pdb dosyasına çıkar. |
embedded |
Taşınabilir PDB biçimini kullanarak hata ayıklama bilgilerini .dll/.exe dosyasının içine (.pdb dosyası üretilmemiştir) göm. |
Önemli
Aşağıdaki bilgiler yalnızca C# 6.0'dan eski derleyiciler için geçerlidir.
Bu öğenin değeri ya full
ya da pdbonly
olabilir.
Pdbonly'i belirtmezseniz geçerli olan tam bağımsız değişken, çalışan programa bir hata ayıklayıcı eklemenizi sağlar. Pdbonly'nin belirtilmesi, program hata ayıklayıcıda başlatıldığında kaynak kodu hata ayıklamasına izin verir, ancak yalnızca çalışan program hata ayıklayıcıya eklendiğinde derleyiciyi görüntüler. Hata ayıklama derlemeleri oluşturmak için bu seçeneği kullanın. Eğer Tam kullanıyorsanız, JIT ile optimize edilmiş kodun hızı ve boyutu üzerinde bazı etkiler olabileceğini ve tam kod kalitesi üzerinde küçük bir etkisi olduğunu unutmayın. Sürüm kodu oluşturmak için pdbonly kullanmanızı veya PDB oluşturmamanızı öneririz. Pdbonly ile tam arasındaki farklardan biri, tam modda derleyicinin JIT derleyicisine hata ayıklama bilgilerinin mevcut olduğunu bildirmek için bir yaymasıdır. Bu nedenle, DebuggableAttribute kullanıyorsanız ve kodunuz false olarak ayarlanmışsa bir hata alırsınız. Bir uygulamanın hata ayıklama performansını yapılandırma hakkında daha fazla bilgi için Bir Görüntüyü Hata Ayıklamayı Kolaylaştırma bölümüne bakın.
Optimize Et
İyileştir seçeneği, çıktı dosyanızı daha küçük, daha hızlı ve daha verimli hale getirmek için derleyici tarafından gerçekleştirilen iyileştirmeleri etkinleştirir veya devre dışı bırakır. Optimize Et seçeneği, Sürüm derleme yapılandırması için varsayılan olarak etkindir. Hata Ayıklama ve diğer derleme yapılandırmaları için varsayılan olarak kapalıdır.
<Optimize>true</Optimize>
Visual Studio'da projeniz için İyileştir seçeneğini Derleme özellikleri sayfasında ayarlarsınız.
İyileştirme ayrıca ortak dil çalışma zamanına çalışma zamanında kodu iyileştirmesini bildirir. Varsayılan olarak iyileştirmeler devre dışı bırakılır. İyileştirmeleri etkinleştirmek için Optimize+ değerini belirtin. Bir derleme tarafından kullanılacak bir modül oluştururken, derleme tarafından kullanılan en iyi duruma getirme ayarlarını kullanın. İyileştirme ve Hata Ayıklama seçeneklerini birleştirmek mümkündür.
Deterministik
Derleyicinin, aynı girişler için derlemelerde bayt için bayt çıkışı aynı olan bir derleme üretmesine neden olur.
<Deterministic>true</Deterministic>
Varsayılan olarak, derleyici, bir zaman damgası ve bir MVID (esas olarak modülü ve sürümü benzersiz olarak tanımlayan rastgele sayılardan oluşturulmuş bir GUID) eklediğinden, belirli bir giriş kümesinden gelen derleyici çıktısı benzersizdir. Giriş aynı kaldığı sürece ikili içeriği derlemeler arasında aynı olan bir deterministik derleme<Deterministic>
için seçeneğini kullanırsınız. Böyle bir derlemede zaman damgası ve MVID alanları, tüm derleme girişlerinin karmasından türetilen değerlerle değiştirilir. Derleyici, determinizmi etkileyen aşağıdaki girişleri dikkate alır:
- Komut satırı parametrelerinin sırası.
- Derleyicinin .rsp yanıt dosyasının içeriği.
- Kullanılmakta olan derleyicinin kesin sürümü ve referans alınan derlemeleri.
- Geçerli dizin yolu.
- Derleyiciye doğrudan veya dolaylı olarak açıkça geçirilen tüm dosyaların ikili içeriği, örneğin:
- Kaynak dosyalar
- Başvurulan derlemeler
- Başvurulan modüller
- Kaynaklar
- Güçlü ad anahtar dosyası
- @ yanıt dosyaları
- Çözümleyiciler
- Kural kümeleri
- Depodan ayıklanan Kaynak Bağlantısı verileri (örneğin git commit SHA, depo URL'si vb.)
- Çözümleyiciler tarafından kullanılabilecek diğer dosyalar
- Geçerli kültür (tanılama ve özel durum iletilerinin oluşturulduğu dil için).
- Kodlama belirtilmemişse varsayılan kodlama (veya geçerli kod sayfası).
- Derleyicinin arama yollarındaki dosyaların varlığı, yokluğu ve içeriği (örneğin
-lib
veya-recurse
tarafından belirtilir). - Derleyicinin üzerinde çalıştırıldığı Ortak Dil Çalışma Zamanı (CLR) platformu.
-
%LIBPATH%
'ün, çözümleyici bağımlılık yüklemesini etkileyebilecek değeri.
Bir ikilinin güvenilir bir kaynaktan derlenip derlenmediğini belirlemek için deterministik derleme kullanılabilir. Belirleyici çıkış, kaynak genel kullanıma sunulduğunda yararlı olabilir. Ayrıca, derleme işleminde kullanılan ikili dosya değişikliklerine bağımlı derleme adımlarının olup olmadığını belirleyebilir.
Yalnızca Başvuru Bütünleştirilmiş Kodu Üret
ProduceOnlyReferenceAssembly seçeneği, birincil çıkış olarak bir başvuru derlemesinin uygulama derlemesi yerine çıkış olması gerektiğini belirtir. Başvuru derlemeleri yürütülemediğinden, ProduceOnlyReferenceAssembly parametresi çıktı PDB'lerini sessizce devre dışı bırakır.
<ProduceOnlyReferenceAssembly>true</ProduceOnlyReferenceAssembly>
Başvuru derlemeleri özel bir derleme türüdür. Başvuru derlemeleri, kitaplığın genel API yüzeyini temsil etmek için gereken en düşük meta veri miktarını içerir. Derleme araçlarındaki bir derlemeye başvururken önemli olan tüm üyeler için bildirimler içerir, ancak API sözleşmeleri üzerinde gözlemlenebilir bir etkisi olmayan özel üyelerin tüm üye uygulamalarını ve bildirimlerini dışlarlar. Daha fazla bilgi için Başvuru derlemeleri bölümüne bakın.
ProduceOnlyReferenceAssembly ve ProduceReferenceAssembly seçenekleri birbirini dışlar.