Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[erledigt] Verweise zu NuGet Paketen passen nicht
Christoph1972
myCSharp.de - Member

Avatar #avatar-2726.jpg


Dabei seit:
Beiträge: 212
Herkunft: NRW

Themenstarter:

[erledigt] Verweise zu NuGet Paketen passen nicht

beantworten | zitieren | melden

[EDIT]
Ich habe den Titel angepasst


Hallo zusammen,

wenn ich meine Git Repositories clone, fehlen die Pfade zu den referenzierten Bibliotheken, wie z.B. System, EntityFramework usw. Selbst wenn ich Referenzen entferne und manuell neu setze fehlt der Pfad zu der DLL. Auch nach einem Restore der NuGet Pakete fehlen die Pfade. Lediglich die Referenzen innerhalb der Solution sind vorhanden.

Kann mir jemand sagen was hier schiefläuft?
Gruß
Christoph
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.030

beantworten | zitieren | melden

Framework Dependencies werden niemals via Pfad angegeben.
NuGet Dependendies erfolgen ausschließlich die die Paketangabe.

Eigene Referenzen müssen Teil des Projekts seins; sonst sieht sie git schließlich gar nicht (darauf achten, dass sie nicht via gitignore erfasst werden).
Besser-> auch hier NuGet verwenden.

Daher die Rückfrage: warum referenzierst Du via Pfadangabe NuGet Pakete?
Hört sich danach an, dass Du das grundlegend nicht so machst, wie man es tun sollte ;)
private Nachricht | Beiträge des Benutzers
Christoph1972
myCSharp.de - Member

Avatar #avatar-2726.jpg


Dabei seit:
Beiträge: 212
Herkunft: NRW

Themenstarter:

beantworten | zitieren | melden

Hallo Abt,

vielen Dank schon mal!

Ich habe nicht via Pfadangabe referenziert, mir war nur aufgefallen das die Pfade jetzt leer sind.

NuGet Pakete habe ich ganz simple installiert und damit gearbeitet. Referenzen auf .Net Komponenten habe ich per „Add Reference“ hinzugefügt.

Ich habe gerade noch mal ein Clone von einem Projekt erstellt und da fehlen alle Referenzen, außer die, die zum Projekt gehören.

Die Referenzen neu setzen funktioniert nicht, auch so das Restore der NuGet Pakete.

Zum Test habe ich Referenzen hinzugefügt, die ich nicht brauche, auch diese werden nicht übernommen. Alle Referenzen sind mit einem gelben Dreieck gekennzeichnet.

Seltsam…..
Gruß
Christoph
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.030

beantworten | zitieren | melden

Zitat von Christoph1972
.Net Komponenten habe ich per „Add Reference“ hinzugefügt.
Was sind .NET Komponenten?
Zitat von Christoph1972
Ich habe gerade noch mal ein Clone von einem Projekt erstellt und da fehlen alle Referenzen, außer die, die zum Projekt gehören.
Die Referenzen neu setzen funktioniert nicht, auch so das Restore der NuGet Pakete.
Ich hab nicht den Hauch einer Ahnung, was Du ausdrücken willst.

Weder Pakete noch Framework Referenzen sollten in Form von Dateien in der Quellcode-Verwaltung landen (SCCM Basics).
Bei einem Pull muss immer ein Restore erfolgen (egal ob in .NET (NuGet), Angular (NPM), Java (Maven) und all die anderen Paketmanager).
private Nachricht | Beiträge des Benutzers
Christoph1972
myCSharp.de - Member

Avatar #avatar-2726.jpg


Dabei seit:
Beiträge: 212
Herkunft: NRW

Themenstarter:

beantworten | zitieren | melden

Zitat von Abt
Was sind .NET Komponenten? :baby:

Damit meine ich z.B. Sytem, Sytem.XML usw.
Zitat von Abt
Ich hab nicht den Hauch einer Ahnung, was Du ausdrücken willst.

Das ich versucht habe die Referenzen manuell neu zu setzen, diese aber auch nicht übernommen werden.
Zitat von Abt
Bei einem Pull muss immer ein Restore erfolgen.

Das habe ich ja gemacht, funktioniert aber leider nicht. Die Referenzen auf die Pakete sind gelb gekennzeichnet und bleiben es auch, mit der Fehlermeldung, dass die referenzierte Komponente nicht gefunden werden kann.
Gruß
Christoph
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.030

beantworten | zitieren | melden

Zitat von Christoph1972
Damit meine ich z.B. Sytem, Sytem.XML usw.
Das sind Framework Assemblies. Es gibt keine ".NET Komponenten" in dieser Hinsicht.
Zitat von Christoph1972
Das ich versucht habe die Referenzen manuell neu zu setzen, diese aber auch nicht übernommen werden.
Was heisst "übernommen"? Es ist leider schwer Dir zu folgen.

Entweder die Referenz ist nach dem "Add" in der Liste von Visual Studio - oder nicht.
Framework Assemblies werden überhaupt nicht mit einem Pfad referenziert, sondern technisch mit einem Include.
<Reference Include="System.Xml.Linq" />
Dahingehend ist das die Registrierung im GAC - völlig egal wo dieser auf System B oder C .. liegt.

Anders das Referenzieren auf Dateiebene.
Referenzen via "Browse" müssen auf jedem Rechner exakt gleich gelegen sein - und teil des Git Repositories sein; ansonsten fehlen diese natürlich bei einem Pull - und das quittiert VS mit gelben Dreiecken.
Das spart man sich aber mit NuGet Paketen.

Hat aber alles prinzipiell nichts mit Git zutun; sondern mit den Basics wie man Abhängigkeiten organisiert.
private Nachricht | Beiträge des Benutzers
Christoph1972
myCSharp.de - Member

Avatar #avatar-2726.jpg


Dabei seit:
Beiträge: 212
Herkunft: NRW

Themenstarter:

beantworten | zitieren | melden

Wie auch immer, ich habe definitiv ein Problem mit einigen meiner Projekte.

Ich hatte noch die Idee, alle NuGet Pakete zu deinstallieren und es mit einer Neuinstallation zu versuchen, dabei habe ich festgestellt, dass sich die Pakete nicht deinstallieren lassen.

Wenn ich ein kleines Testprojekt mit NuGet Paketen anlege und pushe, dann clone, funktioniert alles wie erwartet.
Gruß
Christoph
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.030

beantworten | zitieren | melden

Dann scheinste Dein Projekt/Solution evtl. einfach durch komische Dinge zerschossen zu haben.
private Nachricht | Beiträge des Benutzers
WarLorD_XaN
myCSharp.de - Member



Dabei seit:
Beiträge: 111
Herkunft: Austria

beantworten | zitieren | melden

Hallo,

Pfadangaben von Nuget Paketen werden in der *.csproj Datei relativ gespeichert. Und zwar relativ im Bezug auf die Solution Datei.

Ich hatte da schon mal Probleme im Zusammenhang mit git submodulen.

Eventuell liegts an was ähnlichem...

sg,
xan
private Nachricht | Beiträge des Benutzers
Christoph1972
myCSharp.de - Member

Avatar #avatar-2726.jpg


Dabei seit:
Beiträge: 212
Herkunft: NRW

Themenstarter:

beantworten | zitieren | melden

Hallo zusammen,

einige Pfade zu den NuGet Paketen in den *.csproj Files haben nicht gepasst haben. Die Pfade der „Unter“-Projekte haben auf das Startprojekt gezeigt.

Folgende Verzeichnisstruktur kommt bei mir zum Einsatz:

Projektmappe
UI
--ProjektUI1 (Startprojekt)
--ProjektUI2
LL
--ProjektLL1
--ProjektLL2
DAL
--ProjektDAL1
--ProjektDAL2
Shared
--Shared1
--Shared2

Sämtliche Projekte, bei denen ich mit dieser Struktur arbeite, sind davon betroffen. Interessant ist, dass die Originalversion im Working Directory funktioniert, auch das Updaten der Pakete geht. Bei einem Testprojekt konnte ich das Problem nicht nachstellen, ich werde das eine Weile beobachten. Zum Glück kann man das Problem gut beheben!

Vielen Dank für die Unterstützung!
Gruß
Christoph
private Nachricht | Beiträge des Benutzers
p!lle
myCSharp.de - Member

Avatar #avatar-3556.jpg


Dabei seit:
Beiträge: 1.040

beantworten | zitieren | melden

Kannst du die kaputte Solution zur Verfügung stellen?
Gerne auch abgespeckt, sodass nur 3 Projekte oder so in der Solution sind. =)
private Nachricht | Beiträge des Benutzers
Christoph1972
myCSharp.de - Member

Avatar #avatar-2726.jpg


Dabei seit:
Beiträge: 212
Herkunft: NRW

Themenstarter:

beantworten | zitieren | melden

Zitat von p!lle
Kannst du die kaputte Solution zur Verfügung stellen?

Das ist leider nicht möglich.
Gruß
Christoph
private Nachricht | Beiträge des Benutzers