2012-04-26 27 views
5

हम इस परिदृश्य में VS2010 WPF डिजाइनर में विभिन्न मशीनों पर क्रैश होने की समस्या:वीएस 2010 एसपी 1 डब्ल्यूपीएफ डिजाइनर को दुर्घटनाग्रस्त होने का कारण क्या है?

  • VS 2010 SP1 स्थापित
  • 64 बिट विंडोज 7
  • NHibernate.dll (संस्करण 1.2.0.712 के लिए संदर्भ)

त्रुटि पुन: पेश करने के लिए, एक नया WPF समाधान बनाने के लिए, निम्न कार्य:

  • एक नया WPF समाधान
  • मुख्य विंडो खोलें, कुछ स्थिर पाठ
  • जोड़ने FluentNhibernate.dll के लिए एक संदर्भ, संस्करण बनाने यह करने के लिए एक पाठ बॉक्स जोड़, सेट 1.2.0.712
  • स्वच्छ और समाधान के पुनर्निर्माण
  • डिजाइनर में खोलें मुख्य विंडो फिर, पाठ
  • डिजाइनर में संपादित करें, विंडो के लिए छोड़ दिया क्लिक करें, फिर टेक्स्ट बॉक्स में फिर से वापस

कोई डेटा/कमान बाइंडिंग, कोई कोड संदर्भ फ्लू है entNHibernate कार्यक्षमता या कुछ भी अत्यधिक परिष्कृत, MainWindow.xaml में निम्नलिखित XAML के साथ बस एक नई WPF समाधान:

<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> 

यहाँ पूरा स्टैकट्रेस है:

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() 

एमएस एक SP1 बग के रूप में इस की पुष्टि की है, लेकिन एक संतोषजनक परिणाम के लिए, मुझे इस मुद्दे के बारे में और अधिक समझने की जरूरत है ...

इसका कारण क्या होता है, यह केवल तभी होता है जब एफआईएन जोड़ना होता है, क्यों केवल एक निश्चित स्थान से जोड़ते समय (असेंबली वही होती है - हम एक समान तुलना की थी)? SP1 के बिना, यह काम करता है ...

+1

अंतिम बात मैं इस डाउनलोड करने गया था FluentNHibernate Sourcecode (के बारे में किया है नवीनतम) और इसे एक परियोजना के रूप में संदर्भित करें। यह ठीक काम करता है, इसलिए मूल रूप से इसे प्रश्न में डीएल के साथ कुछ होना चाहिए। क्या विजुअल स्टूडियो संदर्भित डीएलएल पर चेकसम गणना की तरह कुछ भी करता है? –

+0

क्या यह आपके द्वारा उपयोग किए जाने वाले किसी भी नियंत्रण के साथ होता है? क्या ऐसा होता है जब खिड़की के अंदर कोई नियंत्रण नहीं होता है? और आपने NHibernate कैसे स्थापित किया? – Kcvin

उत्तर

0

हम कभी कभी यह चारों ओर पाने के हमलावर नियंत्रण से भरी हुई घटना में

if (System.ComponentModel.DesignerProperties.GetIsInDesignMode(this)) 
       return; 

जोड़कर