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)
.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.
.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.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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.
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
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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.
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.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code