2015-11-10 15 views
43

WinForms VS2013 projemi VS2015'e yükselttikten sonra, MSB3884 "Kural kümesi dosyası bulunamadı" uyarısını görmeye başladım.VS2015: MSB3884 uyarısı: Kural kümesi dosyası bulunamadı

Bir Google araması, bir Yığın Taşması makalesinin yanı sıra çok sayıda başka sitenin de işaret ettiği bir MSDN makalesi açtı.

Benzer Soru: 33020507 MSDN: VS2015 MSB3884 Warning

Ben VS2013 ve VS2015 hem yüklü.

Uyarıları veren proje dosyaları (ve yapmayanlar), bu girişlere sahip değillerdir.

<CodeAnalysisRuleSetDirectories> 
<CodeAnalysisRuleDirectories> 

ben proje dosyasından diğer iki giriş silerseniz

, o zaman sorun yok kural dosya kümesi olmadığı için, açıktır ki, kaybolur.

<CodeAnalysisIgnoreBuiltInRuleSets> 
<CodeAnalysisIgnoreBuiltInRules> 

Harici msbuild kullanarak oluşturmaya çalışıyorum, ancak VS2015 de sorunu gösterme eğilimindedir.

İlginçtir, Kod Çözümleyicisi proje özelliklerinde açık düğmeyi tıklatırsam dosyayı alırım.

Farklı bir kural kümesi belirtmek fark yaratmaz. Bu, belki de akla gelebilecek bir ortam değişkeni ortamı olduğunu düşünmemi sağlıyor. Kod Çözümleyicileri proje dosyasının bir işlevidir. Bir dizin özniteliği ekleyebilirim, ancak fikir birliği yollarını çıkarmaktır, <CodeAnalysisRule*Directories>.

GUI varsayılan kullanır:

VS2015 Project Properties Code Analysis tab '

İşte tipik proje dosyası parçasıdır. Proje dosyasından Kod Analizi hatları kurtulmak sadece geri eklersiniz tekrar bir proje dosyasını kaydetme olsa, nasıl/ortadan kaldırabilir olmadan

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'"> 
    <DebugSymbols>true</DebugSymbols> 
    <OutputPath>bin\x86\Debug\</OutputPath> 
    <DefineConstants>TRACE;DEBUG</DefineConstants> 
    <DebugType>full</DebugType> 
    <PlatformTarget>x86</PlatformTarget> 
    <CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets> 
    <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules> 
    <Prefer32Bit>false</Prefer32Bit> 
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors> 
    <CodeAnalysisRuleSet>BasicCorrectnessRules.ruleset</CodeAnalysisRuleSet> 
    </PropertyGroup> 
    <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> 
    <DebugSymbols>true</DebugSymbols> 
    <OutputPath>bin\x64\Debug\</OutputPath> 
    <DefineConstants>TRACE;DEBUG</DefineConstants> 
    <DebugType>full</DebugType> 
    <PlatformTarget>x64</PlatformTarget> 
    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> 
    <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules> 
    </PropertyGroup> 

uyarı düzeltmek?

+1

Olası kopyalar [VS2015 MSB3884 uyarı: kural kümesi dosyası bulunamadı] (http://stackoverflow.com/questions/33020507/vs2015-msb3884-warning-could-not-find-rule- set-file) – timB33

+0

@ timB33 İki soru arasındaki fark, bu durumda dizinlerin .csproj dosyasında açıkça ayarlanmadığıdır. –

cevap

54

VS2013'ten VS2015'e yükselttikten sonra da aynı problemi yaşadım.

Çözümümün oldu: Proje özellikleri üzerinde

  1. Kod Analizi bölümüne gidin.
  2. Kural kümeleri listesinde Gözat seçeneğini belirleyin. enter image description here
  3. VS2015 kural kümeleri klasörüne göz atın. C: \ Program Dosyaları (x86) \ Microsoft Visual Studio 14.0 \ Takım Araçları \ Statik Analiz Araçları \ Kural Ayarları
  4. Bir kural seti seçin. Yeni projeler tarafından kullanılan varsayılan değer: MinimumRecommendedRules.ruleset
  5. Yeniden oluşturma. Uyarı kontrol edildi. enter image description here
+11

Bunu yaptığımda .csproj öğesinde göreceli bir yol alıyorum. Takımımın geri kalanını, çalışma alanımın bulunduğu yere göre bozacaktı. – timB33

+0

@ timB33: [33020507] (https://stackoverflow.com/questions/33020507/vs2015-msb3884-warning-could-not-find-rule-set-file) ve Visual Studio'nun yeni sürüme geçiş sürecinden tavsiye almanızı öneririz: yolu env değişkeni ile ayarlayın: '; $ (DevEnvDir) \ .. \ .. \ Team Tools \ ...'. –

13

VS 2013'ten VS 2015'e geçtikten sonra bu uyarıya da rastladım.Benim durumumda hata Could not find rule set file "AllRules.ruleset" idi. Doğru kural kümesi klasöründe arar, böylece benim için düzeltme 14.0 olmak .Csproj dosyasında VisualStudioVersion ayarı değiştirmek için oldu: o ve yeniden sonra

VisualStudioVersion setting

, uyarı çözüldü. Daha kolay.

+2

Bunu yapmak için doğru bir yol gibi görünüyor ... birden çok projede benim için sorunu çözdüm. –

+3

Benim .csproj dosya – PandaWood

5

Uyarılarınızı veren proje dosyalarınızın herhangi bir <CodeAnalysisRuleSetDirectories> girişi içermediğini söylediniz.

Benimki de yoktu ve bende, Project Properties Code Analysis (Kod Analizi) bölümünde Open (Aç) düğmesini tıklatırsam dosyayı alırım.

Ancak, çözümdeki tüm proje dosyalarını ararken, iki proje <CodeAnalysisRuleSetDirectories> etiketine sahipti ve bu etiketler yolunda Visual Studio başvurusunun eski bir sürümünü içeriyordu.

Bu yolları düzeltmek, sorunumu giderdi ve hatayı yükselten projenin, hatalı <CodeAnalysisRuleSetDirectories> girişlerini içeren projelere başvuran bir projeye başvurduğunu onayladım.

Tüm çözümü arayın ve tüm <CodeAnalysisRuleSetDirectories> yollarını onarın veya bunları kaldırmayı deneyin.

- Benim durumumda

<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories> 

<CodeAnalysisRuleSetDirectories>;C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories> 

(timB33 yorumladı olarak Jon Shadforth cevabı da benim için çalıştı, ama daha fazla projelerin yolunu ekleyerek gibi değildi) oldu

+0

içinde bu özniteliklerin hiçbiri sahip değilsiniz, eski sürümleri, 2010/2012 ile oluşturduğumdan beri proje özelliklerini değiştirmediğimden beri yükseltilmiş değil ... Temiz bir bilgisayarın neden olduğu ilginç durum sıkıntılar :-) –

2

Bu uyarıdan kurtuldum <CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>

1

Bunu yapsaydınız tr VS2015'ten VS2017'ye yükseltilmiş bir çözüm derlemesine karşın, yolunda MSBuild 14 (C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin) vardı. 15'in yolunun (C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin) olmasını sağladı ve hepsi çalıştı.

0

Burada önerilen farklı çözümlere bakmak için biraz zaman harcadım - her birinin iyi elemanları vardı ama her biri bazı ayarlamalar gerektiriyordu. Olumlu bir çözüm buldum:

Mevcut olan veya herhangi bir NO koşullu (örneğin yapılandırma veya platform) proje dosyasında bir öğe bulun, yani tüm plaka formlarındaki tüm yapılandırmalara uygulanacak. Bu seçime "Kural Kümesi" dizinine giden yolu belirten bir eleman ekleyin. Ör:

<PropertyGroup> 
    <CodeAnalysisRuleSetDirectories>$(DevEnvDir)\..\..\Team Tools\Static Analysis Tools\Rule Sets</CodeAnalysisRuleSetDirectories> 
</PropertyGroup> 
ait
İlgili konular