63 votes

TemporaryGeneratedFile_ [guid] dans / obj / construction de rupture de débogage

J'ai 3 fichiers temporaires créés dans 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

(Le guid ne semblent pas changer, même après une solution propre)

Mon build échoue parce que:

SA1633: Le fichier n'a pas d'en-tête, l'en-tête Xml n'est pas valide, ou l'en-tête n'est pas situé en haut du fichier.

Je ne veux pas tourner le StyleCop règle off. Comment puis-je savoir qu'est-ce que la création de ces fichiers temporaires?

Le site est un asp.net MVC 4, avec 5 modèles, 4 manettes, 2 cours, 2 aspx pages web et 1 service de référence, qui numériquement ne semblent pas concorder avec les 3 fichiers.

Les pointeurs?

Edit: Si je change de cadre de 4,5 dos à 4 ces fichiers en aller et de le construire est un succès.

Ma version de StyleCop est 4.4, je suis plus qu'ouvert à la recherche d'un moyen d'obtenir de l'ignorer obj/debug

93voto

Rajesh Points 61

J'ai résolu ce problème en allant à la solution du projet (dont la construction) donnait cette erreur. Faites un clic droit sur le projet et déchargez le projet. Cliquez ensuite avec le bouton droit sur le projet et modifiez le fichier .csproj. Recherchez ces fichiers générés (problématiques). supprimez ces références de fichier du fichier .csproj. Reconstruisez la solution. Faites un clic droit sur le projet et rechargez le projet. C'est bon d'aller maintenant ...

39voto

NikolaiDante Points 2990

Dans le bloc Analyseurs d'un fichier StyleCop.Settings, ajoutez une entrée pour ces fichiers: La valeur est une expression rationnelle. Vous pouvez donc utiliser une expression plus précise pour faire correspondre un guid, mais cela répond à mes besoins pour le moment.

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

16voto

Vlado Points 61

Les 3 fichiers avec "TemporaryGeneratedFile_" préfixe sont auto-généré par Microsoft.WorkflowBuildExtensions.les objectifs de fichiers importés via la chaîne:

  • *.csproj -->
  • Microsoft.CSharp.objectifs -->
  • Microsoft.Commun.objectifs -->
  • Microsoft.WorkflowBuildExtensions.objectifs

Ils sont générés dans la production intermédiaire chemin indiqué par l' $(IntermediateOutputPath) MSBuild propriété, généralement quelque chose comme obj\debug. Une façon de traiter avec le StyleCop avertissements/erreurs sur ces auto-fichiers générés est-à-dire StyleCop de passer tout *.cs fichiers en vertu de l' $(IntermediateOutputPath). Par exemple, inclure l'élément suivant dans votre projet:

<ItemGroup>
    <ExcludeFromStyleCop Include="$(IntermediateOutputPath)\**\*.cs" />
</ItemGroup>

ExcludeFromStyleCop est le nom d'un élément reconnu par la StyleCop.les objectifs de fichier à exclure des fichiers de l'analyse pendant une génération (au moins pour StyleCop 4.7). L'étoile double ** est MSBuild syntaxe de la recherche de manière récursive sous un dossier.

Le nouvel élément de menu peut s'afficher dans l'Explorateur de solutions de Visual Studio. Si cela n'est pas souhaitable, il peut être masqué par l'aide de la "Visibles" de l'élément de métadonnées:

<ItemGroup>
    <ExcludeFromStyleCop Include="$(IntermediateOutputPath)\**\*.cs" >
        <Visible>False</Visible>
    </ExcludeFromStyleCop>
</ItemGroup>

Approche similaire peut être utilisée pour exclure d'autres fichiers, si nécessaire. J'espère que ça aide.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X