web-dev-qa-db-ja.com

/ obj / debug Breaking BuildのTemporaryGeneratedFile_ [guid]

Obj/debugに3つの一時ファイルが作成されています。

例えば。

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

(ガイドは、ソリューションをクリーンにした後でも変化しないようです)

私のビルドは次の理由で失敗します:

SA1633:ファイルにヘッダーがないか、ヘッダーXMLが無効であるか、ヘッダーがファイルの先頭にありません。

StyleCopルールをオフにしたくありません。これらの一時ファイルの作成内容を調べるにはどうすればよいですか?

このサイトはasp.net MVC 4サイトであり、5つのモデル、4つのコントローラー、2つのクラス、2つのaspx Webページ、および1つのサービス参照があります。

ポインタはありますか?

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

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

55
NikolaiDante

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

このエラーは、プロジェクトソリューション(ビルド)にアクセスして解決しました。

  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" />
57
Rajesh

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

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

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

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

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

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

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

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

14
Vlado

私は同様の問題に直面し、次のように解決しました:

削除binフォルダーのデバッグに加えてobjフォルダーのデバッグ再構築し、動作しました

0
Mortada Issa

私は最近、どこからともなくこの同じ問題に遭遇しました。

私にとっては、各プロジェクトの.csprojファイルを開き、次の行を削除することでこれを克服できました。

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

ソリューションを再度開いた後、エラーなしですべてを構築できました。

0
erupnu

メインのVSソリューションに新しいプロジェクトを追加し、同じ3つのエラーが発生した同僚を支援していました。私は彼と一緒に上記の推奨手順を実行しましたが、修正に成功しませんでした。この後、コード分析とStyleCopを使用するソリューション内に新しいプロジェクトを追加するときに実行する手順の1つを彼が見逃していたことがわかりました。彼は自分のプロジェクトにSettings.StyleCopファイルを追加するのを忘れていました:)

0
John