LoadFromContext Si è verificato

Ho un problema C # molto semplice che carica una finestra Windows WPF da una libreria. Ecco il codice:

public partial class App : Application { public App() { MainWindow mainWindow = new MainWindow(); mainWindow.Show(); } } 

Ma quando lo mainWindow.Show(); si interrompe su mainWindow.Show(); linea con il seguente errore:

Assistente debug gestito “LoadFromContext” ha rilevato un problema in “C: \ Users ….. \ bin \ Debug \ Test.vshost.exe”.

Ulteriori informazioni: l’assembly denominato “WpfXamlDiagnosticsTap” è stato caricato da “file: /// C: / FILE DEL PROGRAMMA (X86) / MICROSOFT VISUAL STUDIO 14.0 / COMMON7 / IDE / COMMONEXTENSIONS / MICROSOFT / CLIENTDIAGNOSTICS / XAMLDIAGNOSTICS / x64 / WpfXamlDiagnosticsTap.dll” usando il contesto LoadFrom.

L’utilizzo di questo contesto può comportare comportamenti imprevisti per la serializzazione, la trasmissione e la risoluzione delle dipendenze. In quasi tutti i casi, si raccomanda di evitare il contesto LoadFrom. Questo può essere fatto installando gli assembly nella Global Assembly Cache o nella directory ApplicationBase e usando Assembly.Load quando si caricano esplicitamente gli assembly.

La class MainWindow estende solo da System.Windows.Window; Non sono esattamente sicuro di cosa significhi e come risolverlo. Appena aggiornato a Visual Studio 2015.

inserisci la descrizione dell'immagine qui

inserisci la descrizione dell'immagine qui

Se ignoro l’eccezione e continuo, ottengo questo quando chiudo l’ultima finestra:

inserisci la descrizione dell'immagine qui

Ho riscontrato lo stesso problema dopo il passaggio da Visual Studio 2013 al 2015. Alcuni vecchi progetti (WPF, .NET 4.5, MVVM Light) generano questo errore, altri no. In Visual Studio posso saltare l’eccezione, ma i rilasci appena creati si fermano durante il caricamento e provano ad aprire il debugger JIT.

Fino ad ora l’unica soluzione sembra essere un rollback di Visual Studio 2013.

** AGGIORNAMENTO **

Alla fine l’ho risolto in VS 2015 deselezionando la seguente opzione:

Strumenti -> Opzioni -> Debug -> Generale -> Abilita strumenti di debug dell’interfaccia utente per XAML

All’improvviso ho iniziato a vedere questo errore in VS2015 e l’ho risolto aprendo la finestra “Impostazioni eccezione” (CTRL + ALT + E) e premendo il pulsante “Ripristina impostazioni”:

inserisci la descrizione dell'immagine qui

In VS2015 sto ottenendo due eccezioni da WpfXamlDiagnosticsTap.dll

  1. Il primo è “LoadFromContext” e si verifica quando si triggers la prima finestra.
  2. Il secondo è “NotMarshalable” e si verifica quando si chiude quella finestra.

Semplicemente ignorando questi due tipi di eccezioni mi consente di eseguire l’applicazione e utilizzare gli strumenti di debug dell’interfaccia utente. Non ho osservato alcun effetto avverso.