2009-03-11 12 views
2

Platformun hangi sürümünün hedeflendiğini algılamak için C# derleyicisinde önceden tanımlanmış sabitler var mı?C# derleyici sürüm veya platform sabitleri mi ayarlandı?

Proje seçeneklerinde bir platform ayarlayabilirim ancak .NET 2 ve .NET 3.5 için nasıl tek kaynak yazabilirim?

Düzenleme: Bir kez gerçekten bir kod yazmak istiyorum ve #if CLR_VERSION35 gibi bir şeyle davranışı değiştirip ardından farklı yapılandırmalar yapmak istiyorum.

Ters soru: CLR35 ve CLR20 yapılandırmaları yaparsam, buna göre hedef platformu seçmek mümkün mü? Bu seçenek VS2008'de mevcut değildir ve MSBUILD hakkında henüz bir şey bilmiyorum.

cevap

5

.NET Framework 3.5, 2.0'ın bir üst kümesidir, böylece tüm 2.0 uygulamaları, değişiklik yapmadan 3.5'da çalışmalıdır. Bir süperset olduğu için, uygulamanızın kendini 2.0 üzerinde bulması durumunda 3.5 işlevselliğini kullanmamak için geri adım atmanın bir yolu yoktur, bu yine de mantıklı değil.

Eğer 2.0'ı hedeflemeniz gerekiyorsa ve 2.0'da ihtiyacınız olanı yazabiliyorsanız, işte bu şekilde devam edecek, 3.5 hala uygulamanızı iyi çalıştıracaktır. Etkin olarak, müşterinizin uygulamanız için doğru ortama sahip olduğundan emin olmak için en düşük ortak payda için yazmanız veya yükleyicinizle birlikte 3.5 çalışma zamanı yeniden dağıtılabilir dosyalarını eklemeniz gerekir.

+0

buysa. – Tassadaque

+0

@Tassadaque, Lazarus'un anlattığı gibi. (1) en düşük ortak paydaya yazınız veya (2) ihtiyacınız olan verim için belirlediğiniz yeniden dağıtılabilirleri dahil ediniz. Neyse ki, Kurulum Projeleri yeniden dağıtılabilir olanı kolayca dahil eder. Ve eğer derleme zamanında bilmeniz gerekiyorsa, o zaman Chris S onun cevabında şöyle der: Kaynak kodunuzun bilmesi gereken şeyleri söylemek için Koşullu Derleme Sembollerini kendiniz ekleyin. –

2

VS2008'de hedef çerçeveyi proje özelliklerinde ayarlayabilirsiniz (Çözüm gezgin, sağ tıklama projesi). Yeni bir proje oluştururken de seçeneğiniz var, yeni proje penceresinin sağ üst köşesinde bir açılır pencere var.

1

DEBUG ve RELEASE dışında, bildiğim kadarıyla yoktur. Araştırmayı kaydeder ve sadece proje özellikleri içinde "Build" sekmesi, "Conditional compilation symbols" ı tanımlayabilirim. this blog üzerinde

Orada fazla bilgi biz de .net 4.0 varsa durumunda çözüm ne olurdu herhangi kullanacağım

İlgili konular