Zu Hauptinhalt springen

 none
Could not load file or assembly 'System.Core, Version=4.0.0.0 RRS feed

  • Frage

  • Hallo,

    die Anwendung lief bisher ohne Fehler. Heute nun eine partielle Klasse hinzugefügt. Beim Aufruf einer Methode dieser Klasse
    gibt es folgenden Fehler:

    System.IO.FileLoadException
      HResult=0x80131040
      Message=Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
      Source=<Cannot evaluate the exception source>
      StackTrace:
    <Cannot evaluate the exception stack trace>


    Der Fehler tritt in dieser Anweisung auf. Diese dient zur Dokumentation der Caller einer Methode.

     // ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        public static void Entry_Page_Value_Validate(Entry entry_p,
                                                    Entry_UI_Prop entry_UI_Prop_p,
                                                    RelativePanel prop_RP_p,
                                                    string P_Caller_N)
        // ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        {
          PropertyInfo pi;
          Control ctr_UI_Prop = null;
    
          Debug.Assert
            (P_Caller_N == Entry_Page_Values_Validate_pn,
             nameof(Entry_Page_Value_Validate)
             + " called from wrong procedure: " + P_Caller_N);
    



    Vermutlich eine dumme Frage. Aber was ist genau zu tun?

    Donnerstag, 26. September 2019 07:12

Antworten

Alle Antworten

  • Wie man im Bild sieht ist bei der Referenz ein komisches blaues Icon. Was bedeutet das?
    Donnerstag, 26. September 2019 07:55
  • Wenn ich das Debug.Assert Statement auskommentiere läuft der Code bis zum nächsten Debug.Assert Statement. Dort kommt dann der gleiche Fehler.
    Das ist aber nur in der heute hinzugefügten Klasse. Im restlichen Programm sind viele Debug.Assert Statements dieser Arte die die ohne Exception durchlaufen werden.
    Donnerstag, 26. September 2019 09:57
  • Das blaue Symbol ist das Symbol eines nuget Packages. Es wird in den Referenzen auf diese weite dargestellt, wenn das project PackageReferences nutzt (also die nuget packages auch im projektfile stehen und nicht in der package.config): PackageReference auf Microsoft.com

    Zur Exception: System.Core wird entweder nicht gefunden, oder aber in einer anderen Version als der hier angegebenen 4.0.0.0. Hast du in den Verschiedenen Projekten deiner Solution eventuell verschiedene Version von System.Core referenziert?

    Donnerstag, 26. September 2019 10:36
  • Hallo Markus,

    das blaue Icon besagt nur das diese Packet von Nuget kommt. Es ist je nach Projektart mal blau und mal grau.

    Ist es nur ein Projekt oder mehrere Projekte? Wenn es mehrere Projekte sind, sind alle Nuget Packet auf dem selben Stand? Das kannst Du am einfachsten rausfinden indem Du einen rechtsklick auf die Projektmappe machst und Nuget-Pakete für Projektmappe verwalten anklickst. Unter Konsolidieren sollten keine Fehler auftauchen


    Gruß Thomas
    13 Millionen Schweine landen jährlich im Müll
    Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings

    Donnerstag, 26. September 2019 10:37
  • Das mit dem Nuget muss ich mal schauen. Ich habe keine Ahnung davon...

    Es waren mal 2 Projekte weil ich einige Klassen in eine .dll auslagern wollte. Ich hatte also eine Klassenbibliothek der Solution hinzugefügt und dort eine Testklasse erstellt die auch instanzierbar und aufrufbar war.
    Dann das ganze zurückgestellt und die Klassenbibliothek aus der Solution wieder entfernt.  Zur Zeit ist es nur ein Projekt.

    Es waren 2 Debug. Assert Statements die ich auskommentiert habe. Nun läuft der restliche Code in der heute hinzugefügten Klasse.

    Wie kann das sein? Die gleichen Debug.Assert Statemants in älterem Code werden durchlaufen. Nur heute bei der neuen Klasse kam es zu dieser Exception und auch nur bei diesem Statement.

    Donnerstag, 26. September 2019 10:50
  • Es war da ein Update zu sehen welches ich durchgeführt habe. Dennoch erscheint der gleiche Fehler wieder bei den Debug.Asserts..

    Donnerstag, 26. September 2019 11:03
  • Das wäre ja nur bei mehreren Projekten eine Möglichkeit.

    Hast Du schon versucht obj und bin zu löschen und das Projekt neu zu erstellen?

    Sollte das auch nicht helfen, würde ich ein neues Projekt mit dem selben Namen erstellen und den gesamten Code rüber kopieren.

    Sicherlich sind das keine Lösungen die den eigentlich Fehler suchen und beheben. Aber sie sind schnell durchzuführen 


    Gruß Thomas
    13 Millionen Schweine landen jährlich im Müll
    Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings

    Donnerstag, 26. September 2019 11:09
  • Also nun gesehen der Fehler kommt dann wenn der Debug.Assert fehlschlägt. Die Bedingung nicht erfüllt ist. Das kam daher das ich beim Kopieren von Code eine Variable nicht angepasst hatte.

    Wenn die Debug.Assert Bedingung nicht erfüllt ist kommt dieser Fehler.

    Deshalb liefen auch die anderen Debug.Assert Anweisungen. Die Bedingung war jeweils erfüllt.

    Eigentlich dachte ich das bei Nichterfülltsein der Debug.Assert Bedingung ein Meldungsfenster kommt. Ob und wie ich hier etwas anpassen kann oder muss weiß ich nicht.

    Wegen des Kopierens des Codes in ein neues Projekt. Müsste man im neuen Projekt jeden Ordner per Hand erstellen und jede CodeDatei mit Add Existing Item hinzufügen?

    Donnerstag, 26. September 2019 13:55
  • Ich benutze Assert wenig, kann dir dazu nicht viel sagen.

    Du kannst das alte Projekt im Explorer öffnen, alles markieren/kopieren und dann in Visual Studio wieder einfügen. 


    Gruß Thomas
    13 Millionen Schweine landen jährlich im Müll
    Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings

    Donnerstag, 26. September 2019 14:09
  • Ich benutze den Debug.Assert zur Dokumentation welche Prozeduren eine Prozedur aufrufen und zum Testen ob Bedingungen auch erfüllt sind. Wenn alles stimmt sollen die Bedingungen ja immer wahr sein.

    Vielen Dank Thomas für den Tipp mit dem Kopieren. Habe es mal ausprobiert und es funktioniert so. Wenn nun wirklich mal etwas kaputt ist so ist das eine schöne Möglichkeit den Fehler zu umgehen.
    Donnerstag, 26. September 2019 14:22