Domanda

I've got a project that uses Autofac, and the WebAPI integration

We run FxCop over our solution, and on opening autofac, I get the following:

The following indirectly-referenced assembly could not be found. This assembly is not required for analysis, however, without it, analysis results could be incomplete. This assemble was referenced by Autofac.dll

System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes

This causes the following error on our CI server:

FxCop return code (516): PROJECT_LOAD_ERROR ASSEMBLY_REFERENCES_ERROR

Is there a way to tell FxCop to ignore this?

È stato utile?

Soluzione

Had the same issue with AutoMapper 3.1.0 on our project. The real problem is an old version of FxCop. The last official release was FxCop 10.0, but new versions of FxCop have been bundled with Visual Studio since 2012. I just replaced the FxCop 10.0 with the version that can be found in:

  • C:\Program Files (x86)\Microsoft Visual Studio 11.0\Team Tools\Static Analysis Tools\FxCop

or

  • C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\FxCop

and the problem was solved.

Altri suggerimenti

This is a common FxCop thing when running with Portable Class Libraries. It's not Autofac; you just happen to see it because Autofac is the only PCL you're using. In my experience, this error doesn't seem to happen if you're building on a Windows 8 machine, but on Windows 7 or Server 2008R2 I see this a lot.

It's not a bug, and no, you won't find 2.0.5.0 on your machine. That version is actually for Silverlight and runtime .NET "stuff" handles redirection to the right assembly version. Unfortunately, FxCop is less cooperative.

I see the same thing in my build and solved it using the suggestions from questions like this: How to fix FxCop error code 512?

You must add a reference to the assembly's directory in the FxCop project file. For instance:

<Targets>
  <AssemblyReferenceDirectories>
   <Directory>C:/Windows/Microsoft.NET/assembly/GAC_MSIL/Microsoft.Web.Infrastructure/v4.0_1.0.0.0__31bf3856ad364e35/</Directory>
   <Directory>C:/Windows/Microsoft.NET/assembly/GAC_MSIL/System.Web.Mvc/v4.0_3.0.0.0__31bf3856ad364e35/</Directory>
  </AssemblyReferenceDirectories> 

Workaround for this issue is to copy the missing System.Core.dll to the project output directory. I made this as a postbuild event to copy System.Core.dll from a shared folder to project\bin directory. You can get the copy of System.Core.dll from the Silverlight SDK 2 installation.

Now fxcop runs successfully without any issues. Note that I was using Fxcop integrator for Visual Studio 2010.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top