我在OBJ /调试正在创建3个临时文件:
如
- TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
- TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
- TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
(的GUID似乎并不即使解决干净改变)
我的编译失败,因为:
SA1633:该文件没有头部,头部XML是无效的,或者是头不位于该文件的顶部。
我不想打开了StyleCop规则了。 我如何找出正在创建这些临时文件?
该网站是一个asp.net MVC 4个网站,有5款车型,4个控制器,2班,2 ASPX网页和1个服务引用,这数字似乎并不与3档相符。
任何指针?
编辑:如果我从4.5变回框架4这些文件走开,构建成功。
我的StyleCop的版本是4.4,我比开放更多寻找一种方式来获得它忽略OBJ /调试
我首先要对项目的解决方案(其版本)解决了这个问题是给这个错误。
- 右键单击该项目并卸载项目。
- 然后右键单击该项目并编辑.csproj的文件。
- 寻找这些临时(有问题的)生成的文件。 (参见实施例的代码)
- 请从.csproj的文件,这个文件的引用。
- 右键单击项目并加载后面的项目。
- 重新生成解决方案。
- 其良好的走了......
他们看起来是这样的文件的csproj:
<Compile Include="src\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs" />
<Compile Include="src\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs" />
<Compile Include="src\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs" />
在StyleCop.Settings文件的解析器块添加一个条目这些文件:这个值是一个正则表达式,所以匹配的GUID更紧一个可以使用,但这些满足我的需要了。
<Parsers>
<Parser ParserId="Microsoft.StyleCop.CSharp.CsParser">
<ParserSettings>
<BooleanProperty Name="AnalyzeDesignerFiles">False</BooleanProperty>
<CollectionProperty Name="GeneratedFileFilters">
<Value>\.g\.cs$</Value>
<Value>\.generated\.cs$</Value>
<Value>\.g\.i\.cs$</Value>
<Value>TemporaryGeneratedFile_.*\.cs$</Value>
</CollectionProperty>
</ParserSettings>
</Parser>
</Parsers>
3个文件与“TemporaryGeneratedFile_”前缀是自动生成由Microsoft.WorkflowBuildExtensions.targets文件最有可能通过进口链条:
- * .csproj的 - >
- Microsoft.CSharp.targets - >
- Microsoft.Common.targets - >
- Microsoft.WorkflowBuildExtensions.targets
它们是由指向的中间输出路径下生成$(IntermediateOutputPath)
MSBuild的属性,通常像obj\debug
。 对付这些自动生成的文件了StyleCop警告/错误的一种方法是告诉了StyleCop跳过在任何*的.cs文件$(IntermediateOutputPath)
例如,在项目中包含以下项目:
<ItemGroup>
<ExcludeFromStyleCop Include="$(IntermediateOutputPath)\**\*.cs" />
</ItemGroup>
ExcludeFromStyleCop
是由StyleCop.targets文件认可(至少4.7 StyleCop的)构建过程中排除从分析文件的项目名称。 双星**
是的MSBuild语法一个文件夹下搜索递归。
新项目可能会在Solution Explorer中显示在Visual Studio中。 如果是不希望它可以通过使用“可见”项元数据被隐藏:
<ItemGroup>
<ExcludeFromStyleCop Include="$(IntermediateOutputPath)\**\*.cs" >
<Visible>False</Visible>
</ExcludeFromStyleCop>
</ItemGroup>
类似的方法可以使用,如果需要排除其他文件。 我希望帮助。
我在帮谁添加了一个新的项目,我们的主要VS解决方案,谁得到这些相同的3个错误同事。 我通过上面他建议的步骤去,但没有固定在任何成功。 在此之后,我发现,他已经错过了的,我们将使用代码分析和了StyleCop我们的解决方案中的一个新项目时执行的步骤之一。 他已经忘记了Settings.StyleCop文件添加到他的项目:)
我最近遇到了同样的问题无章可循。
对我来说,我能够通过打开的.csproj文件,对每一个项目,以解决这个问题,然后删除以下行:
<Import Project="$(SolutionDir)\CodeAnalize\Microsoft.StyleCop.targets" />
重新打开该解决方案后,它能够无差错建立的一切。
我面临着类似的问题,解决了它如下:
在另外bin文件夹中删除调试到OBJ文件夹中的调试重建和它的工作