Weiß jemand, warum eine Fehlermeldung "Manifestdefinition stimmt nicht mit der Assemblyreferenz überein" in einer Standard-Framework-Referenz auftreten kann?

8

Ich habe ein Problem, das mich schon seit einiger Zeit verwirrt. Auf einem WPF / .NET 3.5-Produkt, das ich veröffentlicht habe, kann etwa 1 von 100 Installationen die Software aufgrund des folgenden Fehlers überhaupt nicht ausführen:

  

System.Windows.Markup.XamlParseException: Fehlgeschlagene Objektinitialisierung (ISupportInitialize.EndInit). Die Manifestdefinition der lokalisierten Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040) Fehler beim Objekt 'System.Windows.Controls.MenuItem' in der Markup-Datei 'mainwindow.xaml'.

Dies ist aus drei Gründen verwirrend:

  1. Dies geschieht nur bei etwa 1 bis 2 Prozent der Installationen.

  2. Es gibt nichts Ungewöhnliches, was ich über die .NET-Installationen oder das Betriebssystem auf diesen Systemen sagen kann.

  3. Dies geschieht mit einer Standard-Framework-Referenz (System.Windows.Controls.MenuItem)

Kann jemand an mögliche Ursachen denken?

BEARBEITEN: Nachdem ich dem Tipp von "500" gefolgt war, konnte ich den Fusion-Protokoll-Viewer auf dem Kundencomputer ausführen. Auf der Entwicklungsmaschine und allen anderen Testmaschinen gibt es erfolgreiche Verbindungsversuche zu "PresentationFramework" und "PresentationFramework.Aero", die erwartet werden. Auf dem Clientcomputer gibt es einen zusätzlichen Bindungsversuch, der fehlschlägt (irrelevante Zeilen entfernt):

%Vor%

Eine Google-Suche nach "PresentationFramework.Dawn" gibt keine Ergebnisse zurück und ich kann keinen Verweis auf diese Datei finden. Irgendwelche Erklärungen oder zusätzliche Tests, die gemacht werden können?

EDIT 2: Es stellt sich heraus, dass der Kunde ein inoffizielles Windows 7 Aero-Theme namens "Dusk" installiert hat. Aus irgendeinem Grund hat PresentationFramework entschieden, PresentationFramework.Dusk statt PresentationFramework.Aero aufzurufen (eine Referenz, die ich explizit in das Projekt aufgenommen habe). Ich gehe davon aus, dass der Fehler das Ergebnis einer fehlerhaften Installation des Third-Party-Theme ist, da Dusk nicht im GAC gefunden werden kann. Aber kannst du mir erklären, wie ich den Versuch stoppen kann und alle GUI-Elemente erzwinge Verwenden Sie PresentationFramework.Aero?

    
Ben McIntosh 29.01.2013, 20:32
quelle

2 Antworten

3

Führen Sie auf den Computern, auf denen der Fehler auftritt, den Anzeigebefestigungsprotokoll-Viewer aus, um eine bessere Version zu erhalten Verständnis, warum es von den Schienen geht.

    
500 - Internal Server Error 01.02.2013, 18:02
quelle
3

In Ihrer Anwendung können Sie angeben, welches Thema Sie verwenden möchten, um ein anderes Thema als das Systemthema zu erzwingen.

Dieser Code muss zu Ihrem ApplicationStartUp-Ereignis hinzugefügt werden

%Vor%

Sie können Ihr Thema auch in XAML definieren:

%Vor%

Diese Einstellung legt fest, dass Sie das Aero-Design verwenden möchten. (Möglicherweise müssen Sie die Version und das Token für den öffentlichen Schlüssel, das Sie verwenden möchten, ändern.)

Weitere Informationen finden Sie hier .

    
Jehof 07.02.2013 07:46
quelle

Tags und Links