Ich habe ein Projekt, das beim Kompilieren folgenden Fehler generiert:
Fehler CS0579: Duplizieren Sie das Attribut 'AssemblyVersion'
Ich habe die Datei überprüft AssemblyInfo.cs
und es sieht so aus, als ob dort keine Duplizierung vorhanden ist.
Ich habe diesen Artikel auf MSDN gefunden, der ein ähnliches Problem behebt, und wenn ich dem Vorschlag in diesem Artikel folge, wird das Problem ebenfalls behoben.
Kann mir jemand sagen, was hier los ist? Kommt es nur vor, wenn zwei oder mehr Projekte mit Klassen mit ähnlichen Namen vorliegen? Oder ist es etwas anderes?
c#
compiler-errors
Aamir
quelle
quelle
Antworten:
Ich bin in der Vergangenheit auch auf dieses Problem gestoßen, daher gehe ich davon aus, dass Ihr Erstellungsprozess Assembly-Informationen separat zur Versionsverwaltung bereitstellt. Dies führt zu einer Duplizierung, da Ihr Projekt diese Informationen auch in der
AssemblyInfo.cs
Datei enthält. Also entferne die Datei und ich denke es sollte funktionieren.quelle
Ab Visual Studio 2017 besteht eine weitere Lösung, um die
AssemblyInfo.cs
Datei weiterhin zu verwenden, darin, die automatische Generierung von Baugruppeninformationen wie folgt zu deaktivieren:Ich persönlich finde es sehr nützlich für Projekte, die sowohl .NET Framework als auch .NET Standard unterstützen müssen.
quelle
.csproj
Datei über ihre Eigenschaftsseiten (Anwendung, Build, Build-Ereignisse usw.) ändere , dasPropertyGroup
mitGenerateAssemblyInfo
:-(Ich hatte den gleichen Fehler und er unterstrich die Assembly Vesrion- und Assembly File-Version. Als ich die Luqi-Antwort las, fügte ich sie nur als Kommentare hinzu und der Fehler wurde behoben
quelle
Beim Konvertieren eines älteren Projekts in .NET Core können die meisten Informationen in AssemblyInfo.cs jetzt im Projekt selbst festgelegt werden. Öffnen Sie die Projekteigenschaften und wählen Sie die Registerkarte Paket, um die neuen Einstellungen anzuzeigen.
Der Beitrag von Eric L. Anderson "Attribut" System.Reflection.AssemblyCompanyAttribute "duplizieren" beschreibt drei Optionen:
quelle
.csproj
) anzugeben , da es sich um Metadaten anstelle von Code handelt, der die tatsächliche Logik beschreibt. Ich hoffe in Zukunft kann alles im Projekt festgelegt werden! (Derzeit kann ich die COM-Sichtbarkeit nicht angeben, daher lasse ich sie inAssemblyInfo.cs
.)In meinem Fall wurden einige temporäre * .cs-Dateien, die während der Kompilierung generiert wurden, versehentlich zum Projekt hinzugefügt.
Die Dateien stammten aus dem
obj\Debug
Verzeichnis, daher hätten sie der Lösung definitiv nicht hinzugefügt werden dürfen. Eine*.cs
Wildcard wurde ein wenig verrückt und fügte sie falsch hinzu.Das Löschen dieser Dateien hat das Problem behoben.
quelle
In meinem Fall gab es dort einen Unterordner in einem Projekt, der selbst ein Projektordner war:
Dateisystem:
Lösung
Dann musste ich den Unterordner "tests" aus dem "webapi" -Projekt entfernen.
quelle
Für mich hatten AssembyInfo.cs und SolutionInfo.cs unterschiedliche Werte. Überprüfen Sie also auch diese Dateien. Ich habe gerade die Version von einem von ihnen entfernt.
quelle
Mein Fehler ist aufgetreten, weil irgendwie ein obj-Ordner in meinem Controller-Ordner erstellt wurde. Suchen Sie in Ihrer Anwendung einfach nach einer Zeile in Ihrer Assemblyinfo.cs. Möglicherweise ist irgendwo ein Duplikat vorhanden.
quelle
Dies passiert normalerweise bei mir, wenn ich das Projekt in Visual Studio 2017 kompiliert habe und dann versuche, es mit .NET Core mit dem Befehlszeilenbefehl "dotnet run" neu zu erstellen und auszuführen.
Durch einfaches Löschen aller Ordner "bin" und "obj" - sowohl in "ClientApp" als auch direkt im Projektordner - konnte der .NET Core-Befehl "dotnet run" erfolgreich neu erstellt und ausgeführt werden.
quelle
Hier muss bereits eine AssemblyInfo.cs-Datei im Projekt vorhanden sein:
So lösen Sie: - Löschen Sie eine AssemblyInfo.cs
quelle
Eine weitere Lösung beim Upgrade von Core auf VS2017 besteht darin, sie in der Datei properties \ assemblyinfo.cs zu entfernen.
Da sie jetzt im Projekt gespeichert sind.
quelle
Ich habe diese Antwort auf msdn gefunden, in der erklärt wird, wie die Datei als Inhalt markiert und dann in Ausgabe kopiert wird = Wenn neuer. Siehe Artikel unten:
https://social.msdn.microsoft.com/Forums/en-US/8671bdff-9b16-4b49-ba9e-227cc4df31b2/compile-error-cs0579-duplicate-assemblyversion-attribute?forum=vsgatk
GH
quelle
Ich bin auf dasselbe gestoßen, als ich versucht habe, das GitVersion-Tool hinzuzufügen, um meine Version in AssemblyInfo.cs zu aktualisieren. Verwenden Sie das VS2017- und .NET Core-Projekt. Also habe ich einfach beide Welten gemischt. Meine AssemblyInfo.cs enthält nur Versionsinformationen, die vom GitVersion-Tool generiert wurden. Mein csproj enthält verbleibende Dinge. Bitte beachten Sie, dass ich keine
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
Attribute verwende, die sich nur auf die Version beziehen (siehe unten). Weitere Details finden Sie hier in den AssemblyInfo-Eigenschaften .AssemblyInfo.cs
my.csproj enthält alle mit anderen Assemblyu-Attributen verbundenen Attribute:
quelle
Ich hatte dieses Problem, als sich mein Hauptprojekt im selben Ordner wie die Lösung befand, dann hatte ich ein separates Projekt in derselben Lösung in einem Unterordner, und dieses separate Projekt verwendete das Hauptprojekt als Referenz. Dies führte dazu, dass das Hauptprojekt die Unterordner bin & obj erkannte, die doppelte Verweise erstellten.
quelle
Mein Fehler war, dass ich auch auf eine andere Datei in meinem Projekt verwies, die auch einen Wert für das Attribut "AssemblyVersion" enthielt. Ich habe dieses Attribut aus einer der Dateien entfernt und es funktioniert jetzt ordnungsgemäß.
Der Schlüssel besteht darin, sicherzustellen, dass dieser Wert in keiner Datei Ihres Projekts mehr als einmal deklariert wird.
quelle
Bearbeiten Sie AssemblyInfo.cs und #if! NETCOREAPP3_0 ... #endif
quelle
Ich habe diesen Fehler erhalten, als ich 2 Projekte in dasselbe Verzeichnis gestellt habe. Wenn ich ein Verzeichnis mit einer Lösung habe und ein separates Web- und Datenverzeichnis darin platziere, wird es richtig kompiliert.
quelle
Wenn dieses Problem in einer Build-Pipeline unter Azure DevOps auftritt, versuchen Sie, die Build-Aktion in den AssembyInfo.cs-Dateieigenschaften als "Inhalt" und "In Ausgabeverzeichnis kopieren" gleich "Bei neuerer Version kopieren" zu setzen.
quelle
Ich glaube, mein Bibliotheksordner wurde durch eine versehentliche Erstellung einer anderen Klassenbibliothek beschädigt. Ich habe die Bibliothek und alle zugehörigen Dateien gelöscht, aber das Problem blieb bestehen. Ich habe eine Problemumgehung gefunden, indem ich ALLE Ordner bin und obj im Verzeichnis gelöscht habe. Der Build war zuvor in Ordnung, fand jedoch einen Unterordner mit derselben Datei "assemblyinfo.cs".
quelle
Dieses Problem ist ein Referenzkonflikt, der VS 2017 am meisten eigen ist.
Ich habe denselben Fehler behoben, indem ich einfach die Zeilen 7 bis 14 sowie die Versionscodes der Baugruppe am Ende der Seite auf AssemblyInfo.cs auskommentiert habe
Es wurden alle doppelten Referenzen entfernt und das Projekt konnte erneut erstellt werden.
quelle