2010-03-01 5 views

cevap

16

Görsel stüdyo çözümü gezgininde, bir projeye sağ tıklayın ve Özellikler'e tıklayın. Oluşturma sekmesini açın ve bir alan "Koşullu derleme sembolleri" göreceksiniz. Bu virgülle ayrılmış bir liste veya ayrılmış alan. Ayrıca, yaygın olarak kullanılan semboller, DEBUG ve TRACE için 2 onay kutusu vardır. Web projeleri için

size "WEB_PROJECT" ve Win alanını ayarlayabilirsiniz "WINFORMS_PROJECT"

+1

Ayrıca, bu şeyleri doğrudan proje dosyanızda (*. Csproj) ayarlayabilirsiniz. Örneğin, bir PropertyGroup içinde " DEBUG; TRACE". – Jeyenne

7

ayarlanır sembolün adını söyle "Koşullu derleme simgelerini arayın eğer "ayar.

Web ve winform uygulamaları için varsayılan olarak tanımlanan farklı simgeler olduğuna inanmıyorum. Bunun projenin kendisi için belirlendiğini ve herhangi bir sınıf kütüphanesini etkilemeyeceğini unutmayın. Bu yüzden bir proje içinde herhangi bir kodun gerçekten bir Windows uygulamasında olup olmadığını bilmemesini veya başlamamasını beklerdim. Bunu ne için kullanmayı düşünüyorsun?

+0

(i gcc düşünüyorum) ve onları başarısız ve: Ben böyle kod yazmak, böylece bu tür C# dili sürümü gibi ortam şartları bağlı olarak koşullu derleme nasıl etkinleştirileceğini gösterir Bu cevapları gördükten sonra dosyalarımı dahil etmek yerine web lib'ime bir başvuru yaptığımı fark ettim. ayy. Aynı kısmi sınıftaki yöntemleri tanımlamak için F # ve C# elde etmeye çalıştığım zamandı. –

+0

Uygulamaya ve web tanımlamasına ihtiyacım yok, C++ bildiğimden beri merak ettim. Bir uygulamada bazı arka uç kodlarını test ediyorum, böylece bir web uygulamasında yapamadığım bir uçta değişiklik yapabilirim (Değişiklikler aşağıdaki durumda izin verilmiyor. Zaten çalışan bir işlem için hata ayıklayıcı) –

+0

Bunu bir web uygulamasında kullandık hata ayıklamada önbelleğe almayı etkinleştirmek için. Yayın öncesi önbelleğe alma mantığı etkinleştirildi, hata ayıklama devre dışı bırakıldı, ancak bazen önbelleğe alma mantığını (hata ayıklamada) test etmek istersiniz. Bunun için ekstra şartlı kullanışlı. (DEBUG | DEBUG_WITH_CACHE) – bob

0

Yöntem 1:

#define TEST_APP true 
#if TEST_APP == true 
#endif 

Yöntem 2:

#define TEST_APP 
#if defined(TEST_APP) 
#endif 

Kaynak: MSDN

0

Dinamik olarak yansıtmak için koşullu derlemenize ihtiyacınız varsa yapı veya çevre koşullarına dikkat edin, cevabımı StackOverflow üzerinde How do I set a conditional compile variable'a bakın. APP_TEST -dAPP_TEST yazdıktan sonra

#if CSHARP7 
    ref T pi = ref rg[i], pj = ref rg[j]; 
    var t = pi;     // swap elements: managed pointers 
    pi = pj; 
    pj = t; 
#else 
    var t = rg[i];     // swap elements: clunky 
    rg[i] = rg[j]; 
    rg[j] = t; 
#endif