Obj/debugに3つの一時ファイルが作成されています。
例えば。
(ガイドは、ソリューションをクリーンにした後でも変化しないようです)
私のビルドは次の理由で失敗します:
SA1633:ファイルにヘッダーがないか、ヘッダーXMLが無効であるか、ヘッダーがファイルの先頭にありません。
StyleCopルールをオフにしたくありません。これらの一時ファイルの作成内容を調べるにはどうすればよいですか?
このサイトはasp.net MVC 4サイトであり、5つのモデル、4つのコントローラー、2つのクラス、2つのaspx Webページ、および1つのサービス参照があります。
ポインタはありますか?
編集: 4.5から4にフレームワークを変更すると、これらのファイルはなくなり、ビルドは成功します。
StyleCopの私のバージョンは4.4です。obj/ debugを無視する方法を見つけることに心を開いています。
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>
このエラーは、プロジェクトソリューション(ビルド)にアクセスして解決しました。
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" />
「TemporaryGeneratedFile_」プレフィックスを持つ3つのファイルは、チェーンを介してインポートされる可能性が高い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>
_
必要に応じて、同様のアプローチを使用して他のファイルを除外できます。それがお役に立てば幸いです。
私は同様の問題に直面し、次のように解決しました:
削除binフォルダーのデバッグに加えてobjフォルダーのデバッグ再構築し、動作しました
私は最近、どこからともなくこの同じ問題に遭遇しました。
私にとっては、各プロジェクトの.csprojファイルを開き、次の行を削除することでこれを克服できました。
<Import Project="$(SolutionDir)\CodeAnalize\Microsoft.StyleCop.targets" />
ソリューションを再度開いた後、エラーなしですべてを構築できました。
メインのVSソリューションに新しいプロジェクトを追加し、同じ3つのエラーが発生した同僚を支援していました。私は彼と一緒に上記の推奨手順を実行しましたが、修正に成功しませんでした。この後、コード分析とStyleCopを使用するソリューション内に新しいプロジェクトを追加するときに実行する手順の1つを彼が見逃していたことがわかりました。彼は自分のプロジェクトにSettings.StyleCopファイルを追加するのを忘れていました:)