Search code examples
asp.net-mvc.net-4.5stylecop

TemporaryGeneratedFile_[guid] in /obj/debug breaking build


I have 3 temporary files being created in obj/debug:

E.g.

  • TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
  • TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
  • TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs

(The guids don't seem to change even after a solution clean)

My build is failing because:

SA1633: The file has no header, the header Xml is invalid, or the header is not located at the top of the file.

I don't want to turn the StyleCop rule off. How do I find out what is creating these temporary files?

The site is an asp.net MVC 4 site, with 5 models, 4 controllers, 2 classes, 2 aspx web pages and 1 service reference, which numerically don't seem to tally with the 3 files.

Any pointers?

Edit: If I change framework from 4.5 back to 4 these files go away and the build is successful.

My version of StyleCop is 4.4, I'm more than open to finding a way to get it to ignore obj/debug


Solution

  • In the parsers block of a StyleCop.Settings file add an entry for these files: The value is a regex, so a tighter one for matching a guid could be used, but these meets my need for now.

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