309 votes

Attribut AssemblyVersion en double

J'ai un projet qui génère l'erreur suivante à la compilation :

erreur CS0579 : Duplication de l'attribut 'AssemblyVersion'.

J'ai vérifié le fichier AssemblyInfo.cs et il semble qu'il n'y ait pas de doublon.

J'ai trouvé cet article sur MSDN qui traite d'un problème similaire et en suivant la suggestion de cet article, le problème est également résolu.

Quelqu'un peut-il me dire ce qui se passe ici ? Est-ce que cela se produit seulement dans le cas où il y a deux ou plusieurs projets avec des classes ayant des noms similaires ? Ou bien s'agit-il d'autre chose ?

388voto

Serge Semenov Points 2621

À partir de Visual Studio 2017 une autre solution pour continuer à utiliser le AssemblyInfo.cs est de désactiver la génération automatique d'informations d'assemblage comme ceci :

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  </PropertyGroup>
</Project>

Je le trouve personnellement très utile pour les projets qui doivent prendre en charge à la fois .NET Framework et .NET Standard.

201voto

luqi Points 2371

J'ai également rencontré ce problème dans le passé, je vais donc supposer que votre processus de construction fournit des informations d'assemblage séparément de la fourniture de version. Et cela provoque une duplication puisque votre projet a également cette information dans le fichier AssemblyInfo.cs fichier. Donc, supprimez le fichier et je pense que ça devrait fonctionner.

54voto

heringer Points 1079

Dans mon cas, il y avait un sous-dossier dans un projet qui était un dossier de projet lui-même :

  • système de fichiers :

    • c : \projects\webapi\wepapi.csproj
    • c : \projects\webapi\tests\wepapitests.csproj
  • solution

    • webapi (dossier et projet)
      • tests (dossier)
    • tests (dossier et projet)

Ensuite, j'ai dû supprimer le sous-dossier "tests" du projet "webapi".

24voto

Michael Freidgeim Points 4002

Lors de la conversion d'un ancien projet vers .NET Core, la plupart des informations qui se trouvaient dans AssemblyInfo.cs peuvent désormais être définies dans le projet lui-même. Ouvrez les propriétés du projet et sélectionnez l'onglet Package pour voir les nouveaux paramètres.

El Le message d'Eric L. Anderson "Duplication de l'attribut 'System.Reflection.AssemblyCompanyAttribute'" décrit 3 options :

  • supprimer les éléments conflictuels du fichier AssemblyInfo.cs,
  • supprimer complètement le fichier ou
  • désactiver GenerateAssemblyInfo (comme suggéré dans une autre réponse de Serge Semenov )

23voto

J'ai eu la même erreur et il soulignait le Vesrion d'assemblage et la version du fichier d'assemblage. En lisant la réponse de Luqi, je les ai ajoutés en tant que commentaires et l'erreur a été résolue.

// AssemblyVersion is the CLR version. Change this only when making breaking    changes
//[assembly: AssemblyVersion("3.1.*")]
// AssemblyFileVersion should ideally be changed with each build, and should help identify the origin of a build
//[assembly: AssemblyFileVersion("3.1.0.0")]

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