J'ai un projet qui génère l'erreur suivante lors de la compilation:
erreur CS0579: attribut 'AssemblyVersion' en double
J'ai vérifié le fichier AssemblyInfo.cs
et il semble qu'il n'y ait pas de duplication.
J'ai trouvé cet article sur MSDN qui aborde 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? Cela se produit-il uniquement dans le cas de deux projets ou plus avec des classes ayant des noms similaires? Ou s'agit-il d'autre chose?
c#
compiler-errors
Aamir
la source
la source
Réponses:
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 gestion des versions. Et cela provoque une duplication car votre projet a également cette information dans le
AssemblyInfo.cs
fichier. Supprimez donc le fichier et je pense que cela devrait fonctionner.la source
À partir de Visual Studio 2017, une autre solution pour continuer à utiliser le
AssemblyInfo.cs
fichier consiste à désactiver la génération automatique d'informations d'assemblage comme ceci:Personnellement, je le trouve très utile pour les projets qui doivent prendre en charge à la fois .NET Framework et .NET Standard.
la source
.csproj
fichier en utilisant ses pages de propriétés (Application, Build, Build Events, etc.), lePropertyGroup
avec leGenerateAssemblyInfo
disparaît :-(J'ai eu la même erreur et cela soulignait la Vesrion d'assemblage et la version du fichier d'assemblage, alors en lisant la réponse de Luqi, je les ai simplement ajoutées en tant que commentaires et l'erreur a été résolue
la source
Lors de la conversion d'un projet plus ancien en .NET Core, la plupart des informations contenues dans AssemblyInfo.cs peuvent désormais être définies sur le projet lui-même. Ouvrez les propriétés du projet et sélectionnez l'onglet Package pour voir les nouveaux paramètres.
Le message d'Eric L. Anderson "Duplicate 'System.Reflection.AssemblyCompanyAttribute' attribute" décrit 3 options:
la source
.csproj
), car ce sont des métadonnées au lieu de code qui décrivent la logique réelle. J'espère qu'à l'avenir, tout pourra être spécifié dans le projet! (Actuellement, je ne peux pas spécifier la visibilité COM, donc je la laisse dedansAssemblyInfo.cs
.)Dans mon cas, certains fichiers * .cs temporaires générés lors de la compilation ont été accidentellement ajoutés au projet.
Les fichiers provenaient du
obj\Debug
répertoire, ils n'auraient donc certainement pas dû être ajoutés à la solution. Un*.cs
joker est devenu un peu fou et les a ajoutés de manière incorrecte.La suppression de ces fichiers a résolu le problème.
la source
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:
Solution
Ensuite, j'ai dû supprimer le sous-dossier "tests" du projet "webapi".
la source
Pour moi, c'était qu'AssembyInfo.cs et SolutionInfo.cs avaient des valeurs différentes. Vérifiez donc également ces fichiers. Je viens de supprimer la version de l'un d'eux.
la source
Mon erreur s'est produite car, d'une manière ou d'une autre, il y avait un dossier obj créé dans mon dossier de contrôleurs. Faites simplement une recherche dans votre application pour une ligne dans votre Assemblyinfo.cs. Il peut y avoir un double quelque part.
la source
Cela se produit généralement pour moi si j'ai compilé le projet dans Visual Studio 2017 et que j'essaie de le reconstruire et de l'exécuter avec .NET Core avec la commande de ligne de commande "dotnet run".
La simple suppression de tous les dossiers «bin» et «obj» - à la fois dans «ClientApp» et directement dans le dossier du projet - a permis à la commande .NET Core «dotnet run» de se reconstruire et de s'exécuter avec succès.
la source
Il doit y avoir déjà un fichier AssemblyInfo.cs dans le projet ici:
Pour résoudre: - Supprimez un AssemblyInfo.cs
la source
Une autre solution lors de la mise à niveau du core vers VS2017 consiste à les supprimer dans le fichier properties \ assemblyinfo.cs.
Puisqu'ils sont maintenant stockés dans le projet.
la source
J'ai trouvé cette réponse sur msdn, qui explique le marquage du fichier comme contenu, puis Copier vers la sortie = Si plus récent. Voir l'article ci-dessous:
https://social.msdn.microsoft.com/Forums/en-US/8671bdff-9b16-4b49-ba9e-227cc4df31b2/compile-error-cs0579-duplicate-assemblyversion-attribute?forum=vsgatk
GH
la source
Je suis tombé sur la même chose lorsque j'ai essayé d'ajouter l'outil GitVersion pour mettre à jour ma version dans AssemblyInfo.cs. Utilisez VS2017 et le projet .NET Core. Alors j'ai juste mélangé les deux mondes. Mon AssemblyInfo.cs contient uniquement les informations de version qui ont été générées par l'outil GitVersion, mon csproj contient des choses remaingin. Veuillez noter que je n'utilise pas
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
J'utilise uniquement les attributs liés à la version (voir ci-dessous). Plus de détails ici Propriétés AssemblyInfo .AssemblyInfo.cs
my.csproj contient tous les attributs liés aux autres attributs assemblyu:
la source
J'ai eu ce problème lorsque mon projet principal était dans le même dossier que la solution, puis j'avais un projet séparé dans la même solution situé dans un sous-dossier, et ce projet séparé utilisait le projet principal comme référence. Cela a amené le projet principal à détecter les sous-dossiers bin & obj qui créaient des références en double.
la source
Mon erreur était que je référençais également un autre fichier dans mon projet, qui contenait également une valeur pour l'attribut "AssemblyVersion". J'ai supprimé cet attribut de l'un des fichiers et il fonctionne maintenant correctement.
La clé est de s'assurer que cette valeur n'est pas déclarée plus d'une fois dans un fichier de votre projet.
la source
Modifiez votre AssemblyInfo.cs et #if! NETCOREAPP3_0 ... #endif
la source
J'ai eu cette erreur lorsque j'ai mis 2 projets dans le même répertoire. Si j'ai un répertoire avec une solution et que je mets un répertoire Web et Data séparé, il compile correctement.
la source
Si vous rencontrez ce problème dans un pipeline de génération sur Azure DevOps, essayez de définir l'action de génération en tant que «Contenu» et Copier dans le répertoire de sortie égal à «Copier si plus récent» dans les propriétés du fichier AssembyInfo.cs.
la source
Je crois que mon dossier Bibliothèque a été corrompu par une création par inadvertance d'une autre bibliothèque de classes.J'ai supprimé la bibliothèque et tous les fichiers associés mais le problème a persisté. J'ai trouvé une solution de contournement en supprimant TOUS les dossiers bin et obj du répertoire. La construction était correcte auparavant, mais a trouvé un sous-dossier contenant le même fichier assemblyinfo.cs.
la source
Ce problème est un conflit de référence qui est principalement propre à VS 2017.
J'ai résolu cette même erreur en commentant simplement les lignes 7 à 14 ainsi que les codes de version d'assemblage en bas de la page sur AssemblyInfo.cs
Il a supprimé toutes les références en double et le projet a pu se reconstruire.
la source