Co powoduje awarię projektanta WPF VS 2010 SP1?
Występują awarie na różnych komputerach projektanta WPF VS2010 w następującym scenariuszu:
Zainstalowany VS 2010 SP164-bitowy Windows 7Odniesienie do NHibernate.dll (wersja 1.2.0.712)Aby odtworzyć błąd, utwórz nowe rozwiązanie WPF, wykonaj następujące czynności:
stwórz nowe rozwiązanie WPFotwórz okno główne, dodaj do niego pole tekstowe, ustaw trochę tekstu statycznegododaj odwołanie do FluentNhibernate.dll, wersja 1.2.0.712Wyczyść i odbuduj rozwiązanieOtwórz ponownie główne okno projektanta, edytuj tekstw projektancie kliknij lewą stronę okna, a następnie ponownie w polu tekstowymNie ma powiązań danych / poleceń, żadnego kodu odwołującego się do funkcjonalności FluentNHibernate ani niczego wysoce zaawansowanego, tylko nowe rozwiązanie WPF z następującym XAML w MainWindow.xaml:
<code><Window x:Class="testWpfApplication2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="800" Title="MainWindow" Height="350" > <Grid> <TextBox Text="yxcydfdssdfsdfdsfsdsddsasdyxcasd" /> </Grid> </Window> </code>
Oto kompletny Stacktrace:
<code>System.Reflection.TargetInvocationException Exception has been thrown by the target of an invocation. at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner) at System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeType typeOwner) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Delegate.DynamicInvokeImpl(Object[] args) 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) System.NullReferenceException Object reference not set to an instance of an object. at Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkUtil.GetRuntimeTypeVariable(Type type) at Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkUtil.GetRuntimeType(Type type) at Microsoft.VisualStudio.Shell.Design.VsTargetFrameworkUtil.EnsureRuntimeType(Type type) 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() </code>
MS potwierdziło to jako błąd SP1, ale aby uzyskać satysfakcjonujący wynik, muszę lepiej zrozumieć problem ...
Co powoduje to, dlaczego występuje tylko wtedy, gdy dodajemy FNH, dlaczego tylko podczas dodawania go z określonej lokalizacji (zestaw jest taki sam - dokonaliśmy porównania z pominięciem)? Bez dodatku SP1 działa ...