2012-04-25 20 views
3

当社のソリューションの一つで、コード分析(CA)がオンになって、私たちはエラーを取得:CA0001:メンバーFirstOrDefaultが見つかりませんでした、コード解析エラー

インターネット( http://msdn.microsoft.com/en-us/library/ms245246.aspx)で探し
CA0001 : Member 'FirstOrDefault' could not be found in type 'System.Linq.Enumerable' in assembly '[our project]'. 

、マイクロソフトでは、CodeAnalysisReport.xmlファイルを調べるよう指示しています。しかし、私のマシンのどこにもそのようなファイルはありません。

また、msdnページはカスタムルールを調べるように指示していますが、カスタムルールはありません。

誰かが正しい方向にこの問題を解決する方法を教えてください。または、CAのこの奇妙な振る舞いに関するさらに詳しい情報を得る方法は?

編集:2012年4月25日@ -

10時38分VS2010の出力のいくつかの調査の後、私はビン/ debugディレクトリ内のファイル[MYDLL] .CodeAnalysisLog.xmlを見つけました。そこにエラーがより指定されています

<Exception Keyword="CA0001" Kind="AssemblyLoad"> 
    <Type>Microsoft.FxCop.Common.AssemblyLoadException</Type> 
    <ExceptionMessage>Member 'FirstOrDefault' could not be found in type 'System.Linq.Enumerable' in assembly 'Prodigy.UI.Modules.SecurityDesigner.Silverlight, Version=0.0.0.1, Culture=neutral, PublicKeyToken=fdb1b3fc35f0c32e'.</ExceptionMessage> 
    <StackTrace> at Microsoft.FxCop.Engines.Phoenix.LoadAndResolutionHandler.HandleFailureToFindMatch(ModuleUnit unit, String memberName, Type memberType, String className, UInt32 memberRefToken, UInt32 classToken) 
    at Phx.Metadata.ReaderImplementation.GetExternalDefinitionMemberSymbolHelper(UInt32 memberToken, String name, Byte* signature, Symbol parentSymbol, Symbol originalParentSymbol) 
    at Phx.Metadata.ReaderImplementation.GetExternalDefinitionMemberSymbolHelper(UInt32 memberToken, String name, Byte* signature, Symbol parentSymbol, Symbol originalParentSymbol) 
    at Phx.Metadata.LoaderImplementation.GetExternalDefinitionMemberSymbol(UInt32 memberToken) 
    at Phx.Metadata.LoaderImplementation.GetMemberReferenceSymbol(UInt32 memberReferenceToken) 
    at Phx.Metadata.MetadataLoader.LoadMemberReferences(AssemblyUnit unit) 
    at Microsoft.FxCop.Engines.Phoenix.AssemblyLoader.LoadAssembly(String filePath) 
    at Microsoft.FxCop.Engines.Phoenix.PhoenixAnalysisEngine.AnalyzeInternal() 
    at Microsoft.FxCop.Engines.Phoenix.PhoenixAnalysisEngine.Analyze() 
    at Microsoft.FxCop.Common.EngineManager.Analyze(Project project, Boolean verboseOutput)</StackTrace> 
    </Exception> 

しかし、まだ疑問がこの問題を解決する方法を、残っていますか?

答えて

0

私は最近、この問題に遭遇しました。伝統的なヘッドバック後、解決策はかなり面白かったです。私のプロジェクトでは、ポータブルライブラリを参照していました。これにより結果に2組のシステム参照が効果的にもたらされました。意味System.Coreは4.0.0.0と2.0.whateverとして2回参照されました。そして、fxcopがそれを処理するほどスマートではないように見えます(コードは機能していました、それは本当に有効です)。

tl; dr問題のあるアセンブリで効果的に参照されているものを確認してください。あなたのアセンブリに複製物が重複していないことを確認してください。

0

アセンブリ '[mydll] .Silverlight、Version = 0.0.0.1、Culture = neutral、PublicKeyToken = fdb1b3fc35f0c32e'のメンバ 'FirstOrDefault'が 'System.Linq.Enumerable'タイプの場合、コードを確認しますか?

エラーの説明から、[System.Linq.Enumerable]クラスが[mydll] .Silerlight.dllアセンブリにあるようですが、これは正しいのですか?

スニペットhttp://social.msdn.microsoft.com/Forums/en-US/vstscode/thread/c2165692-67ea-4b4a-b730-52f4b4ff0313/

関連する問題