TemporaryGeneratedFile_ [GUID]在/ OBJ /调试破构建(Tempor

2019-06-28 07:45发布

我在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 /调试

Answer 1:

我首先要对项目的解决方案(其版本)解决了这个问题是给这个错误。

  1. 右键单击该项目并卸载项目。
  2. 然后右键单击该项目并编辑.csproj的文件。
  3. 寻找这些临时(有问题的)生成的文件。 (参见实施例的代码)
  4. 请从.csproj的文件,这个文件的引用。
  5. 右键单击项目并加载后面的项目。
  6. 重新生成解决方案。
  7. 其良好的走了......

他们看起来是这样的文件的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" />


Answer 2:

在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>


Answer 3:

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>

类似的方法可以使用,如果需要排除其他文件。 我希望帮助。



Answer 4:

我在帮谁添加了一个新的项目,我们的主要VS解决方案,谁得到这些相同的3个错误同事。 我通过上面他建议的步骤去,但没有固定在任何成功。 在此之后,我发现,他已经错过了的,我们将使用代码分析和了StyleCop我们的解决方案中的一个新项目时执行的步骤之一。 他已经忘记了Settings.StyleCop文件添加到他的项目:)



Answer 5:

我最近遇到了同样的问题无章可循。

对我来说,我能够通过打开的.csproj文件,对每一个项目,以解决这个问题,然后删除以下行:

<Import Project="$(SolutionDir)\CodeAnalize\Microsoft.StyleCop.targets" />

重新打开该解决方案后,它能够无差错建立的一切。



Answer 6:

我面临着类似的问题,解决了它如下:

另外bin文件夹中删除调试OBJ文件夹中的调试重建和它的工作



文章来源: TemporaryGeneratedFile_[guid] in /obj/debug breaking build