2012-05-16 2 views
2

한 프로젝트에서 코드 분석을 수동으로 실행하려고하는데 다음 오류가 발생합니다. CA0055 : xxx.dll을로드 할 수 없습니다.FxCop의 CA0055 오류

<Exception Keyword="CA0055" Kind="AssemblyLoad"> 
    <Type>Microsoft.FxCop.Common.AssemblyLoadException</Type> 
    <ExceptionMessage>Could not load D:\...\bin\debug\xxx.dll.</ExceptionMessage> 
    <InnerType>System.IO.InvalidDataException</InnerType> 
    <InnerExceptionMessage>Invalid type for custom attribute argument</InnerExceptionMessage> 
    <InnerStackTrace> at 

Phx.Metadata.LoaderImplementation.DeserializePointerTypeConstant(Type type, 
AttributeBlobReader&amp; blobReader, Boolean doResolveEnums) 
at Phx.Metadata.LoaderImplementation.DeserializeConstant(Type type, 
AttributeBlobReader&amp; blobReader, Boolean doResolveEnums) 
at Phx.Metadata.MetadataLoader.ParseCustomAttribute(AttributeSymbol attributeSymbol, 
Boolean doResolveEnums) 
at Microsoft.FxCop.Engines.Phoenix.AssemblyLoader.LoadAttributes(List`1 attributes, 
MetadataLoader metadataLoader) 
at Microsoft.FxCop.Engines.Phoenix.AssemblyLoader.LoadAttributes(ProgramUnit 
programUnit, MetadataLoader metadataLoader) 
at Microsoft.FxCop.Engines.Phoenix.AssemblyLoader.LoadAssembly(String filePath) 
at Microsoft.FxCop.Engines.Phoenix.PhoenixAnalysisEngine.AnalyzeInternal()  

</InnerStackTrace> 
</Exception> 

xxx.dll가 경로에 존재하고 액세스가 허용된다

이 XML 로그에서 자세한 로그입니다.

누군가가 잘못 될 수 있습니까?

감사합니다.

답변

1

Phoenix 어셈블리 로더에서 버그가 발생했을 수 있습니다. 불행히도 예외 세부 사항에는 Phoenix가 폭탄을 터뜨릴 때 분석하려는 사용자 정의 속성에 관한 정보가 포함되어 있지 않으므로 해결 방법이 있는지를 추측하는 것은 거의 불가능합니다. 문제를 일으키는 어셈블리를 공유 할 수 없다면 문제가되는 특성에 대한 자세한 정보를 추출 할 수 있도록 디버거를 fxcopcmd.exe 프로세스에 연결하는 것이 가장 좋습니다.

이 작업을 수행 할 수는 없지만 Microsoft에 문제 DLL을 공유 할 수있는 경우 개인 버그 보고서 https://connect.microsoft.com/VisualStudio/Feedback에 업로드하는 것이 좋습니다.

+0

불행히도, 제 3면에 DLL을 보여줄 수는 없습니다. 또한 fxcopcmd 프로세스에 디버거를 연결하려고 시도했지만 코드 분석을 실행하는 경우에만이 프로세스가 발생합니다. 따라서 분석을 실행하기 전에 존재하지 않기 때문에이 프로세스에 연결할 수 있습니다. – zosim

+0

동일한 명령 줄 옵션으로 fxcopcmd.exe를 수동으로 실행할 수 있으며 디버거에서 시작할 수 있습니다. –