La liaison Assemblée Redirection et analyse du code
-
27-09-2019 - |
Question
J'utilise DotNetOpenAuth (dont les références version System.Web.Mvc 1.0.0.0) dans un projet Mvc 3.0.0.0 dans Visual Studio 2010.
J'utilise la redirection de liaison assemblage 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 très bien, sauf l'analyse de code qui me donne les erreurs suivantes: -
CA0001: L'erreur suivante a été rencontrée alors que le module de lecture X: référence Assemblée ne peut être résolu. System.Web.Mvc, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35
et
CA0058: L'ensemble 'System.Web.Mvc, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' référencé n'a pas été trouvé. Assemblage est nécessaire pour l'analyse et a été référencé par:. X
Y at-il un moyen d'obtenir l'outil d'analyse de code pour respecter la redirection de liaison assemblée?
La solution
Juste pour compléter avec une réponse peu plus précise:
Vous devez soit exécuter FxCopCmd.exe avec:
fxcopcmd.exe /assemblyCompareMode:StrongNameIgnoringVersion
ou modifier votre fichier de projet Visual Studio pour le groupe de propriétés de chaque configuration de construction, comme ceci:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
...
<CodeAnalysisAdditionalOptions>/assemblyCompareMode:StrongNameIgnoringVersion</CodeAnalysisAdditionalOptions>
</PropertyGroup>
Autres conseils
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 / référence-résolutions-changements en code-analyse et FxCop-partie-2.aspx pour un bit d'information d'arrière-plan.
Dans VS2010 / FxCop 10.0, il y a un nouveau commutateur de ligne de commande / assemblyCompareMode pour fxcopcmd.exe qui vous permet de spécifier le mode de comparaison sans déblayage à propos avec le fichier .config. Vous pouvez spécifier en vous VS projet en utilisant la propriété CodeAnalysisAdditionalOptions MSBuild.
En plus de solution peter_raven vous pouvez spécifier l'option pour rendre le travail d'analyse du code avec la construction TFS. Ajouter ce dans les options de construction, onglet processus, catégorie avancée dans "MSBuild Arguments":
/p:CodeAnalysisAdditionalOptions=/assemblyCompareMode:StrongNameIgnoringVersion
Utilisez cette option si vous devez désactiver l'analyse du code.
Dans Visual Studio 2012,
- Faites un clic droit sur votre projet et sélectionnez « Propriétés » dans le menu contextuel.
- Cliquez sur l'onglet « Analyse du code » et décocher « Activer l'analyse du code Surchauffe »
Clean and Build. erreur d'analyse du code devrait disparaître.