2009-02-25 22 views
8

PDB'ler, derleyici/debug argümanı vererek, yönetilen projelerinde .NET için üretildiğini biliyorum. VS (2005) GUI'de bunu belirtmenin bir yolu var mı?Sürüm modunda yönetilen projelerde PDB'ler nasıl oluşturulur?

<DebugSymbols>true</DebugSymbols> 
<DebugType>full</DebugType> 

'salma' ayarları altında:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
Ben şimdiye kadar sürüm modunda PDBs üretmek için alabilir

tek yolu el .Csproj dosyasını değiştirmek ve eklemektir

başka şey: Ben DebugType etiketin olası değerler olduğunu MSDN here öğrenilen:

    full
  • pdbonly
  • none

  • nasıl bu değerler derleyici'nın davranışını etkiler?

  • cevap

    7

    VS2008'de, proje özelliklerini kullanarak -> Yapı -> Gelişmiş ... -> Hata Ayıklama Bilgisi özelliğini kullanarak mülkünü ayarlayabilirsiniz. DEBUG olarak

    +0

    Güzel! Ben de VS 2005 yılında çalışır doğruladı. 'Build' ayarlarına milyonlarca kez baktım, ancak 'Advanced' (Gelişmiş) düğmesine hiç dikkat etmedim. Teşekkürler! –

    +0

    VS 2008'de (ve belki 2005) pdb yalnızca, sürüm oluşturma için varsayılan değerdir (ve hata ayıklama için tam). – Richard

    4

    'full' ve 'pdbonly' arasındaki farkın ne olduğuna ışık tutabilecek this MONO request buldum. zamanı kodu, yani optimize üretirken

    CSC, PDBs oluşturduğu bir "pdbonly" debugtype sahip bir ayıklayıcı özellikleri, vb

    yararlıdır yığın izlerini elde mümkün olduğu için önemlidir yayın kalitesinde koddan.

    O 2 etiketleri (DebugSymbols ve DebugType) varlığı gereksiz geliyor bana.

    +2

    Bu yanlış "yararlı yığın izlerini elde". Tip meta verilerinin varlığı nedeniyle .NET kodunda her zaman yararlı yığın izleri alırsınız. Serbest bırakma porsiyonundaki PDB'ler, üretim koduyla tek adım atmak için önemlidir, ancak optimizasyonlar nedeniyle hata ayıklayıcıda hatalar alabilirsiniz. –

    +0

    @Daniel Bullington, Yığın izlerini en az "daha az kullanışlı" hale getiren pdb dosyaları olmadan satır numaraları ve dosya isimleri almazsınız – tster

    +0

    @tster evet Katılıyorum, ancak PDB'ler olmadan (ve dolayısıyla satır numaraları/dosya adları), yığın izleri hala daha az derece için yararlıdır :) –

    6

    :

    <DebugSymbols>true</DebugSymbols> 
    <DebugType>full</DebugType> 
    <Optimize>false</Optimize> 
    

    sürümde:

    <DebugSymbols>true</DebugSymbols> 
    <DebugType>pdbonly</DebugType> 
    <Optimize>true</Optimize>