2012-12-17 3 views
2

J'ai une fenêtre, la seule chose qui s'y trouve est un TextBlock. Je reçois des exceptions de concepteur ridicules qui écrasent le concepteur chaque fois que je change quelque chose. J'ai commencé à enlever tout en essayant de trouver le coupable de cette erreur. Et maintenant, je n'ai plus rien, mais le designer continue de lancer des exceptions.WPF XAML Designer Crashes

<Window x:Class="Company.Product.Views.About" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Height="397" 
    Width="658"> 
<TextBlock>Test</TextBlock> 
</Window> 
Code

derrière:

/// <summary> 
    /// Interaction logic for Window1.xaml 
    /// </summary> 
    public partial class About : Window 
    { 
     public About() 
     { 
      InitializeComponent(); 
     } 
    } 

Si je « Cliquez ici pour recharger le concepteur » la fenêtre apparaît, mais si je modifie le texte de TextBlock, je reçois une exception

Exception

System.ArgumentNullException 
Value cannot be null. 
    at System.RuntimeType.MakeGenericType(Type[] instantiation) 
    at Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkUtil.GetRuntimeType(Type type) 
    at Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkType.TryGetRuntimeType() 
    at Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkUtil.EnsureRuntimeType(Type type) 
    at Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkProvider.GetRuntimeType(Type reflectionType) 
    at MS.Internal.Package.VSIsolationProviderService.RemoteReferenceProxy.VsReflectionResolver.GetRuntimeType(Type reflectionType) 
    at Microsoft.Windows.Design.Metadata.ReflectionMetadataContext.CachingReflectionResolver.GetRuntimeType(Type reflectionType) 
    at Microsoft.Windows.Design.Metadata.ReflectionMetadataContext.Microsoft.Windows.Design.Metadata.IReflectionResolver.GetRuntimeType(Type reflectionType) 
    at MS.Internal.Metadata.ClrType.get_RuntimeMember() 
    at MS.Internal.Metadata.ClrMember`1.Microsoft.Windows.Design.Metadata.Reflection.IReflectionMember.get_MemberInfo() 
    at MS.Internal.Metadata.ClrType.Equals(Object obj) 
    at System.Collections.Generic.ObjectEqualityComparer`1.Equals(T x, T y) 
    at System.Collections.Generic.Dictionary`2.FindEntry(TKey key) 
    at Microsoft.Windows.Design.Metadata.Xaml.XamlExtensionImplementations.<>c__DisplayClass5.<FindAttachableProperties>b__4(ITypeMetadata walkType) 
    at MS.Internal.Design.Metadata.Xaml.XamlType.<GetAllAttachableProperties>d__7.MoveNext() 
    at MS.Internal.Design.Metadata.Xaml.XamlType.<FindAttachableProperties>d__0.MoveNext() 
    at Microsoft.Windows.Design.Metadata.Xaml.XamlExtensionImplementations.<FindAttachableProperties>d__7.MoveNext() 
    at MS.Internal.VirtualModel.VirtualModelPropertyCollection.<GetUncachedProperties>d__0.MoveNext() 
    at System.Linq.Buffer`1..ctor(IEnumerable`1 source) 
    at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) 
    at MS.Internal.VirtualModel.VirtualModelPropertyCollection.GetEnumerator() 
    at MS.Internal.Designer.PropertyEditing.Model.Properties.ModelPropertyMerger.<GetFirstProperties>d__0.MoveNext() 
    at MS.Internal.Designer.PropertyEditing.Views.PropertyEntryReader.RedraftEntries(IPropertyViewManager viewManager, Selection selection, Boolean attachedOnly, IEventCodeBehindProxy eventCodeBehindProxy, CategoryList categoryList) 
    at MS.Internal.Designer.PropertyEditing.PropertyInspector.UpdateCategories(Selection selection, Boolean attachedOnly, IEntryReader entryReader) 
    at MS.Internal.Designer.PropertyEditing.PropertyInspector.RefreshPropertyList(Boolean attachedOnly) 
    at MS.Internal.Designer.PropertyEditing.PropertyInspector.OnSelectionChangedIdle() 
    at MS.Internal.Designer.PropertyEditing.PropertyInspector.OnSelectionChangedIdleForced(Object sender, EventArgs e) 
    at System.Windows.Threading.DispatcherTimer.FireTick(Object unused) 
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) 
    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) 

Je suis parti avec aucun moyen de deb Quel est le problème, et franchement je deviens frustré considérant qu'il ne devrait y avoir rien sur cet exemple simple qui devrait écraser le concepteur. Des idées?

Mise à jour

Après ré-installation et la mise à jour et rechargeant, problème a disparu temporairement. Maintenant, le problème est de retour.

En fait, je ne suis pas sûr si le problème a disparu. J'ai également essayé le mode sans échec de VS, /etetetsettings, et en supprimant mes plusieurs dossiers de cache dans le dossier de VS.

Update2

Here's a screencast which shows the problem Excuse ma résolution, je suis en mode portrait.

+1

Pouvez-vous aussi montrer votre code derrière le contenu du fichier? Aussi -w la version de VS? –

+0

@ReedCopsey VS2010 SP1 et j'ai pris tout sauf l'appel InitializeComponent() de mon code derrière – Alan

+0

Oui - est-ce sous-classe 'Window', ou une classe personnalisée (dans le code derrière)? –

Répondre

0

D'accord, je crois que j'ai corrigé le problème. J'ai créé un nouveau projet exécutable, copié tout de l'ancien vers le nouveau et essayé de supprimer ou d'ajouter des éléments un par un pour comprendre ce qui était spécial à propos de ce projet.

Il s'avère que je référence plusieurs bibliothèques tierces par Actipro. Auparavant, j'avais mis à jour les bibliothèques et les ai copiées dans un dossier/lib et je les ai référencées à partir de là. L'une des références a cependant été oubliée, et je crois qu'elle visait une version plus ancienne dans le GAC au lieu du dossier/lib. Je pense que j'avais essentiellement deux versions différentes de la bibliothèque partagée d'Actipro.

Après avoir retiré la référence erronée à l'ancienne construction de la bibliothèque 3ème partie, et la mise à jour à la version appropriée comme les autres, le problème a disparu

La chose étrange, est que la fenêtre question utilisé aucun composant ou quoi que ce soit de cette bibliothèque. Il se peut qu'il essayait de résoudre les propriétés attachées à l'intérieur de la bibliothèque (de la trace de pile).

0

Essayez de définir le contenu de TextBlock dans la propriété TextBlock.Text:

<Window x:Class="Company.Product.Views.About" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Height="397" 
Width="658"> 
    <TextBlock Text="Test"/> 
</Window> 

Peut-être est les problèmes.

+0

J'ai essayé dans les deux sens, n'a pas d'importance. – Alan