44 votes

Redirection des liaisons d'assemblage et analyse du code

Je suis en utilisant DotNetOpenAuth (qui Système de références.Web.Mvc version 1.0.0.0) dans un Mvc 3.0.0.0 projet dans Visual Studio 2010.

Je suis en utilisant assembly de redirection de liaison comme suit:-

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

Tout fonctionne bien, à l'exception de l'analyse de code qui me donne des erreurs suivantes:-

CA0001 : L'erreur suivante a été rencontrée lors de la lecture de module X: Assemblée de référence ne peut pas être résolu: le Système.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.

et

CA0058 : L'assembly référencé Système.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 " n'a pas pu être trouvé. Cette assemblée est nécessaire pour l'analyse et a été référencé par: X.

Est-il un moyen pour obtenir l'outil d'analyse de code à l'égard de la liaison d'assembly de redirection?

64voto

peter_raven Points 1021

Juste pour compléter avec une réponse un peu plus précise:

Vous devez soit exécuter FxCopCmd.exe avec:

 fxcopcmd.exe /assemblyCompareMode:StrongNameIgnoringVersion
 

ou modifiez votre fichier de projet Visual Studio pour chaque groupe de propriétés de la configuration de construction, comme suit:

 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  ...
  <CodeAnalysisAdditionalOptions>/assemblyCompareMode:StrongNameIgnoringVersion</CodeAnalysisAdditionalOptions>
</PropertyGroup>
 

6voto

Nicole Calinoiu Points 14034

Voir http://davesbox.com/archive/2008/06/10/reference-resolution-changes-in-code-analysis-and-fxcop-part-1.aspx et http://davesbox.com/archive/2008/06/14/reference-resolutions-changes-in-code-analysis-and-fxcop-part-2.aspx pour un peu de fond de l'information.

Dans VS2010/FxCop 10.0, il y a une nouvelle /assemblyCompareMode commutateur de ligne de commande pour fxcopcmd.exe qui vous permet de spécifier le mode de comparaison sans marinage sur les avec la .fichier de configuration. Vous pouvez l'indiquer en vous VS projet à l'aide de la CodeAnalysisAdditionalOptions propriété MSBuild.

4voto

Michael Logutov Points 632

En plus de la solution peter_raven, vous pouvez spécifier une option pour que l'analyse de code fonctionne avec la construction TFS. Ajoutez ceci dans les options de construction, l'onglet de processus, la catégorie avancée dans "Arguments de MSBuild":

 /p:CodeAnalysisAdditionalOptions=/assemblyCompareMode:StrongNameIgnoringVersion
 

1voto

ShaTin Points 51

Utilisez cette option si vous devez désactiver l'analyse de code.

Dans Visual Studio 2012,

  1. Faites un clic droit sur votre projet et sélectionnez "Propriétés" dans le menu contextuel.
  2. Cliquez sur l'onglet "Analyse de code" et décochez "Activer l'analyse de code sur la construction".

Nettoyer et construire. L'erreur d'analyse de code devrait disparaître.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X