tags:

views:

498

answers:

2

Using FxCop when I try to analyze projects that rely on Patterns and Practices, Enterprise Library Data (among others) 2.0.0.0 - FxCop complains that it can’t: “Locate Assembly Reference” - even though the application dll being analyzed was complied against this version and its in the GAC. If I browse to the GAC try to select the same assembly (I've checked version and public key token) FxCop won't allow me "open" it. The application succeeds in running and definitely makes use of the problem dll.

OS: Seen on both Vista and Windows XP. Versions: Visual Studio 2005 and 2008. FxCop 1.36 Application is complied with VS2005 for .NET 2.0.

I have the same problem if I try to browse the application dll with Reflector.

Clearly it doesn't think this is the same version of the assembly its compiled against. Does anyone know why? Any suggestions for a solution? What am I missing?

A: 

I've always browsed to the local dll's to resolve this issue. I didn't think FxCop and Reflector can actually pull these out of the GAC, although I'm not 100% if this is actually impossible.

Mine are located at:

C:\Program Files\Microsoft Enterprise Library 3.1 - May 2007\Bin

Aaron Daniels
Thanks FxCop and Reflector can pull stuff from the GAC as that is where they find all of the Microsoft and System assemblies. Thanks for the suggestion.
Mark Levison
+3  A: 

Check this (FxCop) and this (Reflector) out.


In FxCop, you can select Project - Options... - Spelling & Analysis - (check) Search Global Assembly Cache for missing references


In Reflector, you can select View - Options... - Browser - (check) Automatically resolve references


I find it kind of weird that these options are not enabled by default.

Aaron Daniels
Thanks Aaron - this did the trick. You rock.
Mark Levison