VS2015:警告MSB3884:找不到规则集文件
将我的WinForms VS2013项目升级到VS2015后,我开始看到MSB3884“无法find规则集文件”警告。
谷歌search出现了一篇MSDN文章,Stack Overflow文章以及其他许多网站。
类似的问题: 33020507 MSDN: VS2015 MSB3884警告
我已经安装了VS2013和VS2015。
给出警告的项目文件(以及那些没有的)没有这些条目。
<CodeAnalysisRuleSetDirectories> <CodeAnalysisRuleDirectories>
如果从项目文件中删除另外两个条目,则问题消失,这是显而易见的,因为没有规则文件集。
<CodeAnalysisIgnoreBuiltInRuleSets> <CodeAnalysisIgnoreBuiltInRules>
我正在尝试使用msbuild进行外部构build,但是VS2015也倾向于显示这个问题。
有趣的是,如果我点击项目属性代码分析器区域中的打开button,我得到的文件。
指定不同的规则集没有区别。 这让我觉得可能有一个环境variables设置,没有任何想到。 代码分析器是项目文件的一个function。 我可以添加一个目录属性,但共识是取出path, <CodeAnalysisRule*Directories>
。
GUI使用默认值:
“
这是一个典型的项目文件片段。
<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>
没有摆脱项目文件中的代码分析线,虽然再次保存项目文件只是将其添加回来,我怎样才能消除/修复警告?
从VS2013升级到VS2015后,我遇到了同样的问题。
我的解决scheme是:
- 在项目属性上转到代码分析部分。
- select规则集列表中的浏览选项。
- 浏览到VS2015规则集文件夹。 C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Team Tools \ Static Analysis Tools \ Rule Sets
- select一个规则集。 新项目使用的默认值是: MinimumRecommendedRules.ruleset
- 重build。 检查警告已经消失。
从VS 2013迁移到VS 2015之后,我也遇到了这个警告。 在我的情况下,错误是Could not find rule set file "AllRules.ruleset"
。 对我来说,修正是将.csproj文件中的VisualStudioVersion
设置更改为14.0
以便它在正确的规则集文件夹中查找:
之后,重build,警告已经解决。 更容易。
你说你的项目文件发出的警告不包含任何<CodeAnalysisRuleSetDirectories>
条目。
我也没有,并且像我一样,如果我点击项目属性代码分析部分中的打开button,我会得到该文件。
但是,search解决scheme中的所有项目文件后,出现了两个具有<CodeAnalysisRuleSetDirectories>
标记的项目,这些标记在path中包含一个较早版本的Visual Studio参考。
修复这些path解决了我的问题,并且我刚刚确认引发错误的项目引用了一个引用包含不良<CodeAnalysisRuleSetDirectories>
条目的项目的项目。
因此,search整个解决scheme并修复所有<CodeAnalysisRuleSetDirectories>
path,或尝试删除它们。
在我的情况
<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>
(Jon Shadforth的回答也适用于我,但我不喜欢增加更多项目的path – 正如timB33所评论的)
如果编译一个从VS2015升级到VS2017的解决scheme,但在path(C:\ Program Files(x86)\ MSBuild \ 14.0 \ Bin)中有MSBuild 14。 更改以确保15是在path(C:\ Program Files文件(x86)\微软Visual Studio \ 2017 \专业\ MSBuild \ 15.0 \斌),并一切工作。
我通过设置<CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets>
摆脱这个警告。