2009-06-09 4 views
2

Ich habe eine gemischte Winform/WPF-Anwendung, die häufig die Ausnahme auslöst:Fehler XAML Markup zur Laufzeit geladen, wenn in Assembly mit starken Namen gehostet

Could not load file or assembly <Full Assembly Name> or one of it's dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT 0x80131040) Error at object <Object Name> in markup file <file>.xaml 

Der WPF Teil einer Basis benutzerdefinierten Steuerung und mehr User Controls besteht die erben von dieser Basis. Alle WPF-Klassen und Vorlagen befinden sich in derselben Assembly.

Diese Ausnahme trat erst auf, nachdem ich alle Assemblys in der Anwendung benannt hatte.

Alle vom Projekt verwendeten Baugruppen werden in eine einzige Visual Studio-Lösung geladen.

Jetzt für den verwirrenden Teil. Diese Ausnahme tritt nur zeitweise auf. Wenn ich die gesamte Lösung manchmal neu aufbaut, wird es ein guter Build und alles wird gut funktionieren. Andere Male werde ich die Lösung neu erstellen und es wird ein schlechter Build sein und die WPF-Abschnitte werden immer diese Ausnahme auslösen.

Um es zu beheben, verwende ich am Ende den Menüeintrag Clean Solution und baue mehrmals um, bis es mir einen "guten" Build gibt.

Es scheint klar, dass das Problem die Linker nicht übereinstimmenden Assembly-Versionen von früheren Builds ist. Ich bin jedoch überrascht, warum es das tun würde. Die Build-Reihenfolge und die Projektabhängigkeiten sind korrekt festgelegt.

Antwort

2

Ja, ich habe diese Art von Ding schon einmal gesehen. Nicht sicher, ob es eine Option für Sie ist, aber könnten Sie versuchen, die Versionsnummer aller signierten Assemblies explizit festzulegen, anstatt sie automatisch zu inkrementieren?

+0

Ich werde das versuchen und Sie wissen lassen. – aef123

+0

Ich habe jetzt mehrere Dutzend Builds gemacht und keiner von ihnen hatte das Problem, das ich gemeldet habe. Es sieht so aus, als ob dein Vorschlag es behoben hat. Danke für die Hilfe. – aef123

Verwandte Themen