Derleyici uyarılarını gizleme
Visual Studio ile, Proje Tasarımcısı'nda (proje özellik sayfaları) uyarı kodlarını belirterek hangi uyarıların gizlenmesini istediğinizi belirtebilirsiniz. Ayrıca, belirli özellikleri doğrudan proje dosyasında, komut satırı aracılığıyla veya yalnızca bir konumdaki bir uyarıyı engellemek istediğinizde kodda ayarlayarak uyarıları gizleyebilirsiniz.
Bazı derleyiciler ve derleme araçlarının uyarı düzeyini belirtme seçenekleri de vardır. Bu, uyarı kategorilerini tek bir ayar ile denetlemenizi sağlar. Bu seçenekler için, kullandığınız belirli dil ve derleyicinin belgelerine bakın:
Amacınız derleme günlüğünüzde daha özlü ve odaklı bir çıktı görmekse, derleme günlüğü ayrıntı düzeyini değiştirmek isteyebilirsiniz. Kullanılabilir ayarlar Normal, Ayrıntılıveya Tanılama. Ayrıntı düzeyi hakkında daha fazla bilgi için bkz. Nasıl Yapılır: Derleme günlüğü dosyalarını görüntüleme, kaydetme ve yapılandırma.
Dikkat
Uyarıların kodunuzla ilgili olası bir sorunun göstergesi olduğunu, dolayısıyla belirli bir uyarıyı devre dışı bırakma risklerini anlamanız gerektiğini unutmayın. Visual Studio ayarları, uyarıları proje düzeyinde devre dışı bırakır. Uyarıları devre dışı bırakmak için Visual Studio'dan daha hedefli bir yaklaşım kullanmak isteyebilirsiniz. Çoğu derleyici, uyarıları yalnızca belirli kod satırları için devre dışı bırakmanın yollarını sağlar, böylece aynı projenin başka bir yerinde meydana gelirse uyarıları yine de gözden geçirebilirsiniz.
Visual C# veya F için belirli uyarıları gizleme#
C# ve F# projelerinin tamamı için belirli uyarıları engellemek için Derleme özelliklerini kullanın. C# içindeki kodun yalnızca belirli bir bölümünde uyarıyı engellemek istiyorsanız, #pragma uyarısını kullanın. F# için #nowarn önişlemci yönergesini kullanarak bir kaynak dosyanın tamamı için uyarıyı devre dışı bırakın.
Çözüm Gezginiuyarılarını engellemek istediğiniz projeyi seçin.
Proje düğümüne sağ tıklayın ve bağlam menüsünde Özellikler'i seçin. Alternatif olarak, proje düğümünü seçin ve Alt+Entertuşuna basın.
Derleme seçin ve Hatalar ve Uyarılar alt bölümüne gidin.
Uyarıları gizle veya Belirli uyarıları gizle kutusunda, engellemek istediğiniz uyarıların hata kodlarını noktalı virgülle ayırarak belirtin. Uyarı kodlarının listesi ve açıklamaları için bkz. C# Derleyici İletileri .
Çözümü yeniden oluşturun.
Çözüm Gezginiuyarılarını engellemek istediğiniz projeyi seçin.
Proje düğümüne sağ tıklayın ve bağlam menüsünde Özellikler seçeneğini seçin. Alternatif olarak, proje düğümünü seçin ve Alt+Entertuşuna basın.
Derleme sayfasını veya bölümünü seçin ve mevcut kullanıcı arayüzündeyseniz Hatalar ve uyarılar alt bölümünü açın.
Uyarıları gizle veya Belirli uyarıları gizle kutusunda, engellemek istediğiniz uyarıların hata kodlarını noktalı virgülle ayırarak belirtin. Uyarı kodlarının listesi ve açıklamaları için bkz. C# Derleyici İletileri .
Çözümü yeniden oluşturun.
Not
Bazı uyarılar gizlenemez. Bunların listesi için bkz. NoWarn derleyici seçeneği.
C++ için belirli uyarıları gizleme
Proje özelliklerini kullanarak bir C++ projesindeki uyarıları gizleyebilirsiniz; C++ projesinin tamamı için belirli uyarıları engellemek için Yapılandırma Özellikleri özellik sayfasını kullanırsınız. ayrıca #pragma warning
kullanarak belirli dosyalardaki uyarıları gizleyebilirsiniz. Bu makalede proje düzeyi denetimi ele alınmaktadır, ancak amacınız belirli bir dosyada veya yalnızca birkaç kod satırı civarında bir uyarıyı devre dışı bırakmaksa, ancak aynı uyarının diğer oluşumlarını görmeye devam etmek istiyorsanız, #pragma warning
kullanmayı düşünmelisiniz. bkz. #pragma uyarı.
Çözüm Gezginiuyarılarını engellemek istediğiniz projeyi veya kaynak dosyayı seçin.
Menü çubuğunda, Görünüm>Özellik Sayfaları'nıseçin.
Yapılandırma Özellikleri kategorisini seçin, C/C++ kategorisini seçin ve Gelişmiş sayfasını seçin.
Aşağıdaki adımlardan birini gerçekleştirin:
Belirli Uyarıları Devre Dışı Bırak kutusunda, gizlemesini istediğiniz uyarıların hata kodlarını noktalı virgülle ayırarak belirtin.
Daha fazla seçenek görüntülemek için, Belirli Uyarıları Devre Dışı Bırak kutusunda Düzenle'yi seçin.
Tamam düğmesini seçin ve ardından çözümü yeniden oluşturun.
Uyarı başka bir araçtan geliyorsa, ilgili araçla ilgili uyarıları nasıl gizleyebileceğinizi öğrenmek için ilgili aracın belgelerine bakın. Örneğin, C++ bağlayıcısının /IGNORE
bağlayıcı seçeneğini kullanarak devre dışı bırakabileceğiniz bazı uyarıları vardır. bkz. /IGNORE (Belirli uyarıları yoksay) ve bu seçeneği ayarlamak için bkz. /link (Bağlayıcıya seçenekleri iletme).
Visual Basic için uyarıları gizleme
Proje için .vbproj
dosyasını düzenleyerek Visual Basic için belirli derleyici uyarılarını gizleyebilirsiniz.
kategoriye göre uyarıları engellemek için Derleme özellik sayfasını kullanabilirsiniz. Kod dosyasının belirli bir bölümünde uyarıyı devre dışı bırakmak istiyorsanız, #Disable ve #Enable yönergelerini kullanın. Daha fazla bilgi için bkz. Visual Basicuyarılarını yapılandırma .
Visual Basic projesinin tamamında belirli uyarıları gizleme
Bu örnekte, belirli derleyici uyarılarını engellemek için .vbproj
dosyasının nasıl düzenleyebileceğiniz gösterilmektedir.
Çözüm Gezginiuyarılarını engellemek istediğiniz projeyi seçin.
Menü çubuğunda, Proje>ProjeyiKaldır'ı seçin.
çözüm gezgini içinde, proje için sağ tıklayın veya kısayol menüsünü açın ve ProjectName>.vbproj<Düzenle'yi seçin.
XML proje dosyası kod düzenleyicisinde açılır.
Oluşturmakta olduğunuz derleme yapılandırmasının
<NoWarn>
öğesini bulun ve<NoWarn>
öğesinin değeri olarak bir veya daha fazla uyarı numarası ekleyin. Birden çok uyarı numarası belirtirseniz, bunları virgülle ayırın.Aşağıdaki örnek, x86 platformunda Hata Ayıklama derleme yapılandırması için
<NoWarn>
öğesini ve iki derleyici uyarısının bastırıldığını gösterir.<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <PlatformTarget>x86</PlatformTarget> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> <DefineDebug>true</DefineDebug> <DefineTrace>true</DefineTrace> <ErrorReport>prompt</ErrorReport> <NoWarn>40059,42024</NoWarn> <WarningLevel>1</WarningLevel> </PropertyGroup>
Not
.NET Core projeleri varsayılan olarak derleme yapılandırma özellik grupları içermez. .NET Core projesindeki uyarıları engellemek için derleme yapılandırma bölümünü dosyaya el ile ekleyin. Mesela:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp2.0</TargetFramework> <RootNamespace>VBDotNetCore_1</RootNamespace> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <NoWarn>42016,41999,42017</NoWarn> </PropertyGroup> </Project>
Değişiklikleri
.vbproj
dosyasına kaydedin.Menü çubuğunda Project>ProjectYeniden Yükle'yi seçin.
Menü çubuğunda Derle>Çözümü Yeniden Derleseçin.
Çıktı penceresi artık belirttiğiniz uyarıları göstermez.
Daha fazla bilgi için Visual Basic komut satırı derleyicisi için /nowarn derleyicisi seçeneğine bakın.
Tek tek uyarılar için veya kategoriye göre uyarıları gizleyebilirsiniz. Deneyim, .NET Framework projesiyle mi yoksa .NET Core (veya .NET 5 ve üzeri) projesiyle mi çalıştığınıza bağlı olarak farklılık gösterir.
Kod dosyasının belirli bir bölümünde uyarıyı devre dışı bırakmak istiyorsanız, #Disable ve #Enable yönergelerini kullanın. Daha fazla bilgi için bkz. Visual Basicuyarılarını yapılandırma .
.NET 5 veya üzeri projeler
Tanılama kodlarına göre belirli derleyici uyarılarını engellemek için proje dosyasını düzenleyebilir veya Proje Tasarımcısı'nı kullanarak uyarıları kategoriye göre gizleyebilirsiniz. Proje tasarımcısını açmak için proje düğümünü seçin, sağ tıklayın ve Özellikler seçin veya Alt+Enterbasın.
Derleme bölümünde Uyarılar'i seçin. Uyarı önem derecesialtında Uyarı önem derecelerinitek tek ayarla'yı seçebilirsiniz. Kategoriler gösterilir ve uyarı kategorisini devre dışı bırakmak için her kategoriyi Yok olarak ayarlayabilir veya uyarı veya hata olarak etkinleştirmek için Uyarı veya Hata olarak ayarlayabilirsiniz.
.NET Framework projeleri
Proje için .vbproj
dosyasını düzenleyerek Visual Basic için belirli derleyici uyarılarını gizleyebilirsiniz.
kategorisindeki uyarılarıbastırmak için Derleme özellik sayfasınıkullanabilirsiniz.
Visual Basic projesinin tamamında belirli uyarıları gizleme
Bu örnekte, belirli derleyici uyarılarını engellemek için .vbproj
dosyasının nasıl düzenleyebileceğiniz gösterilmektedir.
Çözüm Gezginiuyarılarını engellemek istediğiniz projeyi seçin.
(.NET) Proje dosyasını açmak için proje düğümüne çift tıklayın.
(.NET Framework) Menü çubuğunda Proje >ProjeKaldır'ıseçin. Ardından, Çözüm Gezginiiçinde, proje için sağ tıklayın veya kısayol menüsünü açın ve ardından .vbproj ><ProjectName Düzenle'yiseçin.
MSBuild proje dosyası kod düzenleyicisinde açılır. Bu bir XML dosyasıdır.
Oluşturmakta olduğunuz derleme yapılandırmasının
<NoWarn>
öğesini bulun ve<NoWarn>
öğesinin değeri olarak bir veya daha fazla uyarı numarası ekleyin. Birden çok uyarı numarası belirtirseniz, bunları virgülle ayırın.Aşağıdaki örnek, x86 platformunda Hata Ayıklama derleme yapılandırması için
<NoWarn>
öğesini ve iki derleyici uyarısının bastırıldığını gösterir.<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <PlatformTarget>x86</PlatformTarget> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> <DefineDebug>true</DefineDebug> <DefineTrace>true</DefineTrace> <ErrorReport>prompt</ErrorReport> <NoWarn>40059,42024</NoWarn> <WarningLevel>1</WarningLevel> </PropertyGroup>
Not
.NET Core ve .NET 5 ve üzeri projeler varsayılan olarak derleme yapılandırma özellik grupları içermez. .NET Core projesindeki uyarıları engellemek için derleme yapılandırma bölümünü dosyaya el ile ekleyin. Mesela:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp2.0</TargetFramework> <RootNamespace>VBDotNetCore_1</RootNamespace> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <NoWarn>42016,41999,42017</NoWarn> </PropertyGroup> </Project>
Değişiklikleri
.vbproj
dosyasına kaydedin.Menü çubuğunda Project>ProjectYeniden Yükle'yi seçin.
Menü çubuğunda Yapı>Çözümü Yeniden Derleseçin.
Çıktı penceresi artık belirttiğiniz uyarıları göstermez.
Daha fazla bilgi için Visual Basic komut satırı derleyicisi için /nowarn derleyicisi seçeneğine bakın.
Proje dosyasını düzenleyerek uyarıyı gizleme
Uyarıları engellemek için Visual Studio özellik tasarımcısının kullanılması, proje dosyasında değişiklik olmasına neden olur. Bazen, bir uyarıyı devre dışı bırakma görevini gerçekleştirmek için proje dosyasını el ile düzenlemek daha kullanışlı olabilir. Proje dosyası, Microsoft'un derleme altyapısı olan MSBuild tarafından işlenir. Bakınız MSBuild.
Ayrıca, Visual Studio 2019 sürüm 16.7 ve önceki sürümlerinde, derleyici dışındaki araçlardan gelen bazı uyarılar başka hiçbir şekilde gizlenemez.
Proje dosyasını Visual Studio düzenleyicisinde açmak için proje düğümüne sağ tıklayın ve proje dosyasını düzenle seçin. Bazı proje türleri, proje dosyasını düzenleyebilmeniz için önce projeyi kaldırmanızı gerektirir. Projeyi kaldırmanız gerekiyorsa, proje düğümüne sağ tıklayın ve Projeyi kaldır seçin.
Yeni bir
PropertyGroup
bölümündeNoWarn
özelliğini kullanın. Gizlemesini istediğiniz hataları virgül veya noktalı virgülle ayırarak listeleyin. Derleyici uyarıları için dil kodunu atlayabilir ve yalnızca sayıyı girebilirsiniz, ancak netlik için tam kodu kullanmanızı öneririz. Derlemedeki diğer araçlardan gelen uyarılar için, ön ek dahil olmak üzere tam kodu belirtin (örneğin, MSBuild tarafından verilen uyarılar içinMSB
).Aşağıdaki kod, cs0028 ve CS0618 uyarılarını gizlenen uyarılar listesine ekler:
<PropertyGroup> // Other properties <NoWarn>$(NoWarn);CS0028;CS0618</NoWarn> </PropertyGroup>
Önceki örnekte gösterildiği gibi önceki
$(NoWarn)
değerine başvurmak, bu sayıları üzerine yazmak yerineNoWarn
için önceden ayarlanmış herhangi bir değere ekler.
Bkz. NoWarn.
Derleme komut satırından uyarıyı gizleme
Komut satırından bir proje oluşturuyorsanız, MSBuild komut satırındaki -warnAsMessage
kullanarak uyarıları da gizleyebilirsiniz. Birden çok uyarı kodu listesinin çevresinde tırnak işaretleri kullanın.
MSBuild.exe -warnAsMessage="CS0028;CS0618" MyProject.csproj
bkz. MSBuild komut satırı başvurusu.
Dizin yapısındaki tüm projeler ve çözümler için uyarıları gizleme
Directory.Build.propsMSBuild dosyasını kullanarak hepsi dosya sisteminde ortak bir dizin altındaysa, birçok proje için uyarıları aynı anda gizleyebilirsiniz. Bkz. Derlemeleri kullanıcı dizinine göre özelleştirin. Örneğin, aşağıdaki Directory.Build.props dosyasını birçok çözüm ve projenin yer aldığı bir klasörün köküne yerleştirirseniz, bu klasördeki tüm projeler için belirtilen uyarı listesini gizleyebilir ve içindeki klasörlere özyinelemeli olarak bakabilirsiniz.
<Project>
<PropertyGroup>
<NoWarn>$(NoWarn);CS0028;CS0618</NoWarn>
</PropertyGroup>
</Project>
Araç uyarılarını gizleme
MSBuild gibi derleyici dışındaki araçlardan gelen uyarıları nasıl bastırdığınız, sahip olduğunuz proje türüne ve hangi MSBuild sürümünü kullandığınıza bağlıdır.
MSBuild 16.8 ve üzeri sürümlerle, SDK veya standart içeri aktarma kullanan projelerde, daha önce açıklanan yöntemleri kullanarak araç uyarılarını gizleyebilirsiniz. Derleyici uyarısıyla yapabileceğiniz gibi yalnızca bir sayı değil, tam hata kodunu (MSBuild için MSB
gibi ön ek dahil) belirtmeniz gerekir. Ayrıca, ileti ortadan kaldırılmaz; bilgilendirme iletisi olarak gösterilmeye devam eder, ancak uyarı seviyesinden düşürülmüştür.
MSBuild 16.7 ve önceki sürümlerde ve SDK veya standart içeri aktarma kullanmayan herhangi bir projede bu uyarılar NoWarn
kullanılarak gizlenmiyor. Böyle durumlarda, araç uyarılarını engellemek için kullanabileceğiniz özellik MSBuildWarningsAsMessages
. Proje dosyasını düzenleyerek veya MSBuild komut satırında MSBuildWarningsAsMessages
seçeneğini belirterek derleme uyarılarını gizleyebilirsiniz.
MSBuildWarningsAsMessages
kullandığınızda, MSB
ön eki de dahil olmak üzere tam MSBuild hata kodunu kullanın.
<PropertyGroup>
<MSBuildWarningsAsMessages>$(MSBuildWarningsAsMessages);MSB3270</MSBuildWarningsAsMessages>
</PropertyGroup>
bazı MSBuild uyarılarının MSBuildWarningsAsMessages
ayarlanarak gizlenemeyeceğini unutmayın. Bunları devre dışı bırakmak için warnAsMessage
komut satırı seçeneğini kullanın.
Ayrıca, bazı uyarılar uyarıyı devre dışı bırakmak için ayarlayabileceğiniz belirli özelliklere sahiptir. Örneğin, MSB3253
özelliği ayarlanarak devre dışı bırakılır:
<PropertyGroup>
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
None
</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
</PropertyGroup>
Mümkün olduğunda daha açık özelliğini kullanın, çünkü bir hata kodu tek başına o kadar anlaşılır değildir. Kodun hata başvuru sayfası genellikle kodu devre dışı bırakmak için kullanılan özelliği içerir.
NuGet paketleri için uyarıları gizleme
Bazı durumlarda, projenin tamamı için değil, tek bir NuGet paketi için NuGet derleyici uyarılarını bastırmak isteyebilirsiniz. Uyarı bir amaca hizmet eder, bu nedenle bunu proje düzeyinde gizlemeyi istemezsiniz. Örneğin, NuGet uyarılarından biri paketin projenizle tam olarak uyumlu olmayabileceğini bildirir. Bunu proje düzeyinde gizler ve daha sonra ek bir NuGet paketi eklerseniz, uyumluluk uyarısı oluşturup oluşturmadığını asla bilemeyeceksiniz.
Tek bir NuGet paketi için belirli bir uyarıyı gizleme
Çözüm Gezginiiçinde, derleyici uyarılarını engellemek istediğiniz NuGet paketini seçin.
Sağ tıklama veya bağlam menüsünden Özelliklerseçin.
Paket özellikleri Uyarıları gizle kutusuna, bu paket için gizlemek istediğiniz uyarı numarasını girin. Birden fazla uyarıyı engellemek istiyorsanız, uyarı numaralarını ayırmak için virgül kullanın.
ekran görüntüsü
Uyarı, Çözüm Gezgini ve Hata Listesi'ten kaybolur. Proje dosyasında NoWarn özelliği ayarlanır.
<PackageReference Include="NuGet.Build.Tasks.Pack" Version="6.2.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <NoWarn>NU5104</NoWarn> </PackageReference>
Kod Analizi uyarılarını gizleme
CA
ile başlayan kodlara sahip tanılama iletileri, bu makalede açıklanan derleyici uyarılarından farklı olan Kod Analizi ihlalleri ve uyarılarıdır. Kod Analizi uyarılarını, kural yapılandırma dosyalarını kullanarak siteye özgü işaretleme ve proje genelinde veya genel olarak kullanma gibi çeşitli yollarla gizleyebilirsiniz. Bkz. kod analizi uyarılarını gizleme ve Kod Analizi ihlallerini engelleme.
İlgili içerik
- Adım Adım Rehber: Uygulama Oluşturma
- Nasıl yapılır: Derleme günlüğü dosyalarını görüntüleme, kaydetme ve yapılandırma
- derleme ve inşa etme
- Kod Analizi
- Hataları ve uyarıları bildirmek için C# Derleyici seçeneklerini
- Visual Basic'de uyarıları yapılandırma
- C++ derleyici hatalarını ve uyarılarını