61

obj/debugで作成されている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.netMVC4サイトであり、5つのモデル、4つのコントローラー、2つのクラス、2つのaspx Webページおよび1つのサービス参照があり、数値的には3つのファイルと一致していないようです。

ポインタはありますか?

編集:フレームワークを4.5から4に戻すと、これらのファイルはなくなり、ビルドは成功します。

私のStyleCopのバージョンは4.4です。obj/debugを無視する方法を見つけることに心を開いています。

4

7 に答える 7

86

プロジェクト ソリューション (そのビルド) でこのエラーが発生していたので、この問題を解決しました。

  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" />
于 2012-09-24T14:37:26.607 に答える
39

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>
于 2012-09-14T09:17:41.840 に答える
15

"TemporaryGeneratedFile_" プレフィックスを持つ 3 つのファイルは、チェーン経由でインポートされる可能性が最も高い Microsoft.WorkflowBuildExtensions.targets ファイルによって自動生成されます。

  • *.csproj -->
  • Microsoft.CSharp.targets -->
  • Microsoft.Common.targets -->
  • Microsoft.WorkflowBuildExtensions.targets

これらは、$(IntermediateOutputPath)MSBuild プロパティが指す中間出力パスの下に生成されます。通常は のようなものobj\debugです。これらの自動生成されたファイルに関する StyleCop の警告/エラーに対処する 1 つの方法は、StyleCop に .cs ファイルの下の *.cs ファイルをスキップするように指示することです$(IntermediateOutputPath)。たとえば、プロジェクトに次の項目を含めます。

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

ExcludeFromStyleCopビルド中にファイルを分析から除外するために StyleCop.targets ファイルによって認識される項目名です (少なくとも StyleCop 4.7 の場合)。二重星**は、フォルダーの下で再帰的に検索するための MSBuild 構文です。

Visual Studio のソリューション エクスプローラーに新しい項目が表示される場合があります。それが望ましくない場合は、'Visible' アイテム メタデータを使用して非表示にすることができます。

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

同様のアプローチを使用して、必要に応じて他のファイルを除外できます。それが役立つことを願っています。

于 2013-02-23T09:23:55.373 に答える