2015-09-09 10 views
6

Stavo per iniziare a utilizzare VS2015 con un progetto WPF esistente incluso il toolkit MVVM Light ma ho rilevato che esiste un problema relativo al designer WPF/Xaml.MVVM Light ed EventToCommand assegnano un markup non valido in VS2015

Il progetto include alcuni tag EventToCommand in markup come questo:

<i:Interaction.Triggers> 
    <i:EventTrigger EventName="Loaded"> 
     <command:EventToCommand Command="{Binding LoadedCommand}"></command:EventToCommand> 
    </i:EventTrigger> 
</i:Interaction.Triggers> 

Quando si caricano file XAML utilizzando l'EventToCommand costruire il progettista non riesce a caricare il file e le relazioni "markup non valido". Viene quindi visualizzato l'elenco degli errori:

Il tipo "EventToCommand" dall'assembly "GalaSoft.MvvmLight.Platform" è costruito con una versione precedente di Blend SDK e non è supportato in un progetto Windows Presentation Framework 4.

Il progetto è impostato su .NET 4.5 e funziona perfettamente con VS2013 senza alcuna modifica. Tutto questo sembra molto simile alla domanda Where do I find Galasoft.MvvmLight.WPF45 assembly? ma la soluzione suggerita non aiuta affatto in VS2015.

Ho provato questo in un nuovo progetto creato dal modello MVVM Light ma ottengo lo stesso errore anche con quel nuovo progetto. La versione MVVM Light è MvvmLightLibs 5.2.0 di NuGet, anch'essa ho testato con la precedente versione v4.x di MvvmLightLibs.

risposta

1

utilizzare questa versione di System.Windows.Interactivity: http://www.microsoft.com/en-us/download/details.aspx?id=10801

È inoltre possibile installare tramite Gestione NuGet Package. Cerca System.Windows.Interactivity.WPF

+0

Provato, ma risulta immediatamente in XamlParseException all'avvio dell'applicazione. Messaggio di errore: Impossibile caricare il file o l'assembly 'System.Windows.Interactivity, Version = 4.5.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' o una delle sue dipendenze. La definizione manifest di assembly individuato non corrisponde al riferimento all'assembly. –

+0

Ho anche dovuto abbandonare MVVM Light alla versione 5.1.1.0 – Trev

3

Il problema potrebbe essere dovuto alla mancata registrazione di System.Windows.Interactivity.dll in GAC. I passaggi seguenti aiutano a evitare l'errore di markup non valido.

  1. Avviare Developer Prompt dei comandi per VS2015 come Admin

  2. Cambia directory a Blend SDK:
    cd C: \ Program Files (x86) \ Microsoft SDK \ Expression \ Miscela \ .NETFramework \ v4.5 \ Libraries \

  3. Registrati DLL:
    gacutil -i System.Windows.Interactivity.dll

Riferimento: https://connect.microsoft.com/VisualStudio/feedback/details/755407/xaml-designer-will-not-display-when-using-blend-sdk-behaviors

+0

Questo problema è stato risolto. –

+0

Questo collegamento non funziona. Versione di Google Cache: https://webcache.googleusercontent.com/search?q=cache:y1l8CTUi5mwJ:https://connect.microsoft.com/VisualStudio/feedback/details/755407/xaml-designer-will-not-display- quando si utilizzano-blend-sdk-comportamenti + & cd = 1 & hl = it & ct = clnk & gl noi = –

Problemi correlati