2015-07-11 18 views
23

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

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

Ma quando l'eseguo rompe sulla linea mainWindow.Show(); con il seguente errore:

Managed Debugging Assistant 'LoadFromContext' has detected a problem in 'C:\Users.....\bin\Debug\Test.vshost.exe'.

Additional information: The assembly named 'WpfXamlDiagnosticsTap' was loaded from 'file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/CLIENTDIAGNOSTICS/XAMLDIAGNOSTICS/x64/WpfXamlDiagnosticsTap.dll' using the LoadFrom context.

The use of this context can result in unexpected behavior for serialization, casting and dependency resolution. In almost all cases, it is recommended that the LoadFrom context be avoided. This can be done by installing assemblies in the Global Assembly Cache or in the ApplicationBase directory and using Assembly.Load when explicitly loading assemblies.

La classe MainWindow appena si estende da System.Windows.Window; Io non sono esattamente sicuro che cosa questo significa e come risolvere. Appena aggiornato a Visual Studio 2015.

enter image description here

enter image description here

Se ignoro l'eccezione e continuare ottengo questo quando chiudo l'ultima finestra:

enter image description here

+0

Dal 2015 non è ancora stato rilasciato ... succede nel 2013? – OmegaMan

+0

@OmegaMan, non è stato così, ma non sono sicuro se a) Ho ignorato l'eccezione nel 2013, b) l'ho creato con l'aggiornamento, c) c'è un bug nel 2015, o d) è tutto come prima, ma 2015 ha una nuova eccezione. Non importa cosa, ancora non capisco cosa significa e/o come risolverlo. – Jason

+0

Quando lo dici * si interrompe *, intendi che si interrompe nel debugger o quando viene eseguito all'esterno del debugger, * genera * questa eccezione? Puoi anche creare una piccola app di test e pubblicare qui il codice in modo che possiamo tentare di ricrearlo? – OmegaMan

risposta

39

Sono in esecuzione nello stesso problema dopo il passaggio da Visual Studio 2013 al 2015. Alcuni vecchi progetti (WPF, .NET 4.5, MVVM Light) producono questo errore - altro no t. 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 a Visual Studio 2013.

** UPDATE **

Finalmente ho risolto in VS 2015 deselezionando la seguente opzione:

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

+0

Super! È così! Grazie ;-) – peter70

+3

Non si tratta solo di sopprimere il messaggio di errore? Qualcosa sta ancora generando queste eccezioni. – hughes

2

In VS2015 sto ottenendo due ecce zioni da WpfXamlDiagnosticsTap.dll

  1. Il primo è "LoadFromContext" e si verifica quando si attiva la prima finestra.
  2. Il secondo è "NotMarshalable" e si verifica quando si chiude la 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.

7

ho tutto ad un tratto ha iniziato a vedere questo errore in VS2015 e fissato aprendo la finestra "Impostazioni eccezione" (CTRL + ALT + E) e premere il pulsante "Ripristina impostazioni":

enter image description here

Problemi correlati