diverse Probleme mit VS

  • Allgemein

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von MasterQ.

    diverse Probleme mit VS

    Moin,

    diese mal habe ich nichts programmierspezifisches aber ich möchte mal meine Probleme mit VS auflisten. Vielleicht hat jemand einen Tipp, was und warum da was nicht geht.

    1. Aktuell habe ich das Problem, dass beim Ausführen meines Projektes die Meldung kommt,

    Could not load file or assembly 'XYZ, Version=5.0.0.0, Culture=neutral, PublicKeyToken=xyz'. Das System kann die angegebene Datei nicht finden.

    Nun ist die Datei aber vorhanden. Es handelt sich um ein Nuget-Paket. Die DLL des Pakets liegt unter C:\Users\<name>\.nuget\packages\.., sie liegt im bin\Debug\net6.0-windows meines Projektes. Es ist auch nicht nur eine DLL die nicht gefunden wird. Aktuell werden 2 von 5 über nuget eingebundene DLLs nicht gefunden. Siehe ScreenShots:





    Auch mache ich das hier wie bei allen anderen Projekten auch, auch mit EFCore.

    es scheint also so, dass die DLLs nicht im finalen Paket eingebunden ist. Im Verzeichnis das ich oben zeige, werden ja alle Komponenten zusammengetragen, die man für das fertige Paket braucht und letztendlich in publish zusammengebunden. Aber bei mir wird wohl da was vergessen.

    Gruß

    MQ

    Thema verschoben; IDE-Fragen gehören inzwischen hierher ~VaporiZed

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    @MasterQ Nuget-Pakete sind umbenannte ZIP-Dateien.
    Benenne sie um in .ZIP und sieh Dir ihren Inhalt an.
    Überzeuge Dich davon, dass eine 5.0-Version im Paket enthalten ist.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @MasterQ Dein zweiter Post: Net6, Dein erster Post: Net5.
    Kläre das auf.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich hatte diese Problem auch schon. Dabei waren in meiner Projektmappe mehrere CS-Projekte. Davon ein paar DLL's als Plugin-System, die dynamisch nachgeladen werden. Diese hatte ich manuell in den Debug-Ordner geschoben um diese auch zu testen/debuggen. Nach einer weile bekam ich dann den Fehler mit der fehlenden DLL für EntityFrameworkCore. Hab ich zuerst auch nicht verstanden, aber schuld waren die manuell hinzugefügten Plugin-DLL's. Die Version des EntityFrameworkCore's hatte sich geändert, aber die DLL's haben sich noch auf die ältere Version bezogen, wurden aber von dem neueren Hauptprojekt geladen. Dadurch der Fehler. Ich habe die neu kompiliert und drüber kopiert und dann hat es wieder funktioniert.

    Hast du eventuell irgendwas manuell kopiert, das neu kompiliert werden muss?

    RodFromGermany schrieb:

    @MasterQ Dein zweiter Post: Net6, Dein erster Post: Net5.
    Kläre das auf.


    ?? wo habe ich .NET5 ??

    Bluespide schrieb:


    Hast du eventuell irgendwas manuell kopiert, das neu kompiliert werden muss?


    Ich habe keine per Hand kopierte. Das hätte ich ausprobiert, wenn die DLL nicht im Build-Ordner vorhanden wären.

    Aber ich sehe gerade, gesucht wird z.B. Version 5.0.0.0 und in Nuget wird als aktuelle Version 5.0.1 angegeben. ... Aber ein Downgrad hat nix gebracht. Ich habe da nicht per Hand drin rumgepfuscht, mit Nuget die aktuelle Version installiert und gut ist.

    Mit ILSpy sehe ich, dass sich die Angaben zu AssemblyFileVersion und AssemblyVersion unterscheiden:

    Quellcode

    1. [assembly: AssemblyFileVersion("5.0.1.0")]
    2. [assembly: AssemblyInformationalVersion("5.0.1+edf9e7a07044ba72d69da9f41b52dd7964e79125")]
    3. [assembly: TargetPlatform("Windows7.0")]
    4. [assembly: SupportedOSPlatform("Windows7.0")]
    5. [assembly: AssemblyVersion("5.0.0.0")]


    Beim EntityFrameworkCore wird nach 6.0.8.0 gesucht und installiert ist laut Nuget 6.0.8. Da fehlt eine Stelle. hmmmm, aber das scheint normal. Aber auch hier sind FileVersion und Version unterschiedlich.

    Alle Angaben zu den eingebundenen DLL sind in der Projektdatei korrekt. Keine irgendwie übriggebliebenen oder verschluckten Fragmente.

    Alle betroffenen Pakete habe ich auch in anderen Projekt eingebunden und da ohne Probleme.


    Ach Manno

    MasterQ schrieb:

    Could not load file or assembly 'XYZ, Version=5.0.0.0, Culture=neutral, PublicKeyToken=xyz'. Das System kann die angegebene Datei nicht finden.
    Version=5.0.0.0
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Das Projekt, so wie es ist, auf einem anderen Rechner compiliert und gestartet, bringt keine nicht auffindbaren DLL. Es ist also ein lokales Problem des betroffenen Rechners.

    Beide greifen auf die selben (nicht die gleichen) Dateien auf einer Netzwerkfreigabe zu. Die einzigen Unterschiede, die mir bewusst sind, sind:
    1. Auf Rechner 1 läuft VS 17.2.6 (->Geht) und auf Rechner 2 läuft VS 17.3.3 (-> geht nicht)
    2. Rechner 1 ist reale Hardware (Laptop) und Rechner 2 ein virtuelles Windows.

    Und was sagt mir das jetzt?

    --EDIT:

    Bei neuerlicher Kompilierung auf R2 huscht mal kurz die Meldung durch, "Fehler bei der Wiederherstellung von Nuget-Paketen". Danach aber nicht mehr.



    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MasterQ“ ()

    Es hat sich keiner mehr hier gemeldet, so dass ich davon ausgehe, dass keiner eine Idee hat.

    Trotzdem möchte ich den Sachverhalt dokumentieren, vielleicht fällt jemandem doch was dazu ein. Ich denke auch, es könnte sich um einen Bug handeln. Nach intensiven Suchen und Testen stellt sich alles aktuell so dar:

    Meine Projektmappe enthält zwei Projekte:



    Hauptprojekt ist ein Excel AddIn, basierend auf ExcelDNA und ein zweites, das nur zum Testen dienen soll, um das Debuggen zu erleichtern ohne dass Excel jedesmal gestartet werden muss.

    libExcekAddIn besitzt keinen Verweis auf AddInTest aber umgekehrt.

    AddInTest ruft also Methoden aus libExcelAddIn auf. Das komische ist nun, dass die Methoden aus AddInTest heraus keine fehlenden DLL melden, aus Excel heraus aber schon.

    Ich habe drei Rechner zur Verfügung, alle Win10. Auf zweien kommen die Meldungen zu fehlenden DLL, auf einem nicht. Kann es sein, dass gar nicht die DLL fehlt, die angemeckert wird, sondern eine die davon referenziert wird? Das zu finden wird schwierig. Aber das kann eigentlich nicht sein, denn das Tool AddInTest läuft ja auf allen Rechnern.

    Ich habe keine Idee mehr, wo ich suchen soll.

    --EDIT:

    nochmal zur Klarstellung:

    auf einem Rechner funktioniert AddInTest und es funktioniert libExcelAddIn in Excel
    auf zwei Rechnern funktioniert AddInTest aber es funktioniert nicht libExcelAddIN in Excel


    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MasterQ“ ()

    Moin,

    in der Zwischenzeit habe ich weitere Tests und andere Zusammenbrüche erlebt. Es zeichnet sich aber ab, dass das eigentliche Problem keine fehlenden DLL sind, sondern es sich um Seiteneffekte handelt.

    Aktuell gehe ich davon aus, dass die Ursache der Meldungen eigentlich ein Problem bei der Registrierung der DLL ist, die ich schreibe und die die angeblich fehlenden DLL referenziert. Mittlerweile lauten die Fehlermeldungen nämlich, dass meine (COM-)DLL nicht registriert werden konnte. Damit erklärt sich vieles. Auf den Rechnern, auf denen fehlende DLL angemerkt wurden, ist meine DLL nie registriert gewesen, auf dem Rechner auf dem keine Meldung kam, war sie registriert.

    Gruß

    MQ