Laden...

VS eigenes NuGet Paket integrieren Fehler Anfänger

Erstellt von frameworker vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.181 Views
F
frameworker Themenstarter:in
7 Beiträge seit 2019
vor 4 Jahren
VS eigenes NuGet Paket integrieren Fehler Anfänger
  1. Projekt .NET Standard Library mit Abhängigkeit zu Third-Party NuGet Paket wird ordnungsgemäß kompiliert und eigenes NuGet Paket wird auch angelegt (in lokalem Verzeichnis i.A. local nuget repo)

  2. .NET Console Projekt, dort Add NuGet Paket, obiges in 1. erstelltes Paket hinzufügen

Problem:

Während der Add-Prozess läuft sehe ich im Solution Pad die Liste der Abhängigkeiten wachsen - das scheint ja normal zu sein, aber:

Ein paar Sekunden später ist im Projekt aus 2. das NuGet Paket aus 1. zwar geladen, aber sämtliche Typen und Klassen rot unterstrichen: main, void, string, int usw.

Was mache ich falsch? Entferne ich mein eigenes Paket, ist gleich darauf alles wieder in Ordnung. Also hängt es an meinem NuGet Paket, nur sehe ich nicht wo. Es kompiliert ja.

16.807 Beiträge seit 2008
vor 4 Jahren

.NET Core/.NET Standard Projekte untereinander innerhalb einer Solution kannst Du ganz normal, direkt referenzieren.
Erzeugst Du dann NuGet Pakete via dotnet pack löst die CLI automatisch die Referenzen auf und macht daraus NuGet Paket-Verweise.

Ansonsten kann zumindest ich mit der Fehlerinfo hier nichts anfangen.

F
frameworker Themenstarter:in
7 Beiträge seit 2019
vor 4 Jahren

Der Fehler lautet nach dem Hinzufügen überall:

"Predefined System.x is not defined or imported" wobei x für alle Standardsachen steht: Object, String

Irgendwas ist mit meinem Paket falsch, ich kann aber nicht erkennen was.

16.807 Beiträge seit 2008
vor 4 Jahren

Naja, wie mit den Infos auch nicht 😉
Beispielprojekt auf GitHub oder GitHub Gists?
[Tutorial] Vertrackte Fehler durch Vergleich von echtem Projekt mit minimalem Testprojekt finden

F
frameworker Themenstarter:in
7 Beiträge seit 2019
vor 4 Jahren

Hab's selbst rausgefunden. In VS Community MacOS gibt es beim Erstellen einer Solution mehrere Optionen.
Bei mir hat jetzt nur die oberste Others->.NET->Library funktioniert.

Das merkwuerdige Verhalten tritt nur auf, wenn ich die Option .NET Standard Library waehle.
Wobei ich mich frage, was der Unterschied zwischen .NET Standard Library und Library ist.

Die Option Nuget Package funktioniert zwar, aber da wird drinne kein Sourcefile kompiliert, das Paket scheint "leer" zu sein.

16.807 Beiträge seit 2008
vor 4 Jahren

Ich kenne die Dialoge nicht, nutze kein MacOS.

Das sind aber prinzipiell auch nur Templates. Das heisst, dass sind Beispielprojekte, nach denen Du Dich ++orientieren ++kannst.
Das heisst aber nicht, dass es unbedingt zu jedem Real World Projekten passt. Es sind eben Beispiele.

Library ist halt einfach ein Projekt, das nur zum Referenzieren gedacht ist - zB. innerhalb Solutions.
NuGet Pakete eben ein Projektsample, um NuGet Pakete zu erzeugen, die nachher Solution-übergreifend verfügbar sein sollen.

Was genau der Unterschied von Library und .NET Standard Library ist, das sieht man hier nur, wenn man sich die csproj-Dateien anschaut.
Ich vermute, dass Library eben ein Legacy Template ist.