XAMLParseException 把我逼疯了! [英] XAMLParseException driving me CRAZY!
问题描述
这个 XAMLParseException 快把我逼疯了!!我在 Visual Studio 1020 中使用 .NET 3.5 这是我的 xaml:
THIS XAMLParseException IS DRIVING ME CRAZY!! I am using .NET 3.5 in Visual Studio 1020 This is my xaml:
<Window x:Class="WinformsHost.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Advanced Notepad" Height="350" Width="525" Loaded="Window_Loaded">
<DockPanel>
<Menu DockPanel.Dock="Top">
<MenuItem Header="File">
<MenuItem Header="_New" />
<MenuItem Header="_Open..." />
<MenuItem Header="_Save" />
<MenuItem Header="S_ave As..." />
<Separator />
<MenuItem Header="Page Setup" />
<MenuItem Header="Print" />
<Separator />
<MenuItem Header="Exit" />
</MenuItem>
<MenuItem Header="Edit">
<MenuItem Header="Undo" />
<MenuItem Header="Redo" />
<Separator />
<MenuItem Header="Cut" />
<MenuItem Header="Copy" />
<MenuItem Header="Paste" />
<MenuItem Header="Delete" />
<Separator />
<MenuItem Header="Time/Date" />
<Separator />
<MenuItem Header="Preferences" />
</MenuItem>
<MenuItem Header="Format">
<MenuItem Header="Word Wrap" IsCheckable="True" />
<MenuItem Header="Font..." />
</MenuItem>
<MenuItem Header="View">
<MenuItem Header="Status Bar" IsCheckable="True" />
</MenuItem>
<MenuItem Header="Language">
<RadioButton x:Name="rbtCmake" Checked="rbtCmake_Checked" Content="Cmake" />
<RadioButton x:Name="rbtCSharp" Content="C#" />
<RadioButton x:Name="rbtHTML" Content="HTML" />
<RadioButton x:Name="rbtPython" Content="Python" />
<Separator />
<RadioButton x:Name="rbtText" IsChecked="True" Content="Text" />
</MenuItem>
<MenuItem Header="Help">
<MenuItem Header="View Help" />
<Separator />
<MenuItem Header="About Notepad" />
</MenuItem>
</Menu>
<StatusBar x:Name="stbStatus" DockPanel.Dock="Bottom" Visibility="Collapsed">
<TextBlock x:Name="txtStatus" Text="Status" />
</StatusBar>
</DockPanel>
</Window>
那么它可能是我的代码?这是例外:System.Windows.Markup.XamlParseException 未处理Message=无法创建在程序集记事本,版本=1.0.0.0,文化=中性,PublicKeyToken=null"中定义的MainWindow"的实例.调用的目标已抛出异常.标记文件MainWindow.xaml"第 1 行第 9 行出错.来源=演示框架行号=1线位置=9堆栈跟踪:在 System.Windows.Markup.XamlParseException.ThrowException(字符串消息,异常内部异常,Int32 lineNumber,Int32 linePosition,Uri baseUri,XamlObjectIds currentXamlObjectIds,XamlObjectIds contextXamlObjectIds,Type objectType)在 System.Windows.Markup.XamlParseException.ThrowException(ParserContext parserContext, Int32 lineNumber, Int32 linePosition, String message, ExceptioninnerException)在 System.Windows.Markup.BamlRecordReader.ThrowExceptionWithLine(字符串消息,异常内部异常)在 System.Windows.Markup.BamlRecordReader.CreateInstanceFromType(Type type, Int16 typeId, Boolean throwOnFail)在 System.Windows.Markup.BamlRecordReader.GetElementAndFlags(BamlElementStartRecord bamlElementStartRecord, Object& element, ReaderFlags& flags, Type& delayCreatedType, Int16& delayCreatedTypeId)在 System.Windows.Markup.BamlRecordReader.BaseReadElementStartRecord(BamlElementStartRecord bamlElementRecord)在 System.Windows.Markup.BamlRecordReader.ReadElementStartRecord(BamlElementStartRecord bamlElementRecord)在 System.Windows.Markup.BamlRecordReader.ReadRecord(BamlRecord bamlRecord)在 System.Windows.Markup.BamlRecordReader.Read(Boolean singleRecord)在 System.Windows.Markup.TreeBuilderBamlTranslator.ParseFragment()在 System.Windows.Markup.TreeBuilder.Parse()在 System.Windows.Markup.XamlReader.LoadBaml(流流,ParserContext parserContext,Object parent,Boolean closeStream)在 System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc)在 System.Windows.Application.LoadComponent(Uri resourceLocator, Boolean bSkipJournaledProperties)在 System.Windows.Application.DoStartup()在 System.Windows.Application.<.ctor>b__0(未使用的对象)在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)在 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)在 System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)在 System.Windows.Threading.DispatcherOperation.InvokeImpl()在 System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(对象状态)在 System.Threading.ExecutionContext.runTryCode(Object userData)在 System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode 代码、CleanupCode backoutCode、Object userData)在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)在 System.Windows.Threading.DispatcherOperation.Invoke()在 System.Windows.Threading.Dispatcher.ProcessQueue()在 System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& 处理)在 MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& 处理)在 MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)在 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)在 System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)在 System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)在 System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority 优先级,委托方法,对象参数)在 MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)在 MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)在 System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame 框架)在 System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame 框架)在 System.Windows.Threading.Dispatcher.Run()在 System.Windows.Application.RunDispatcher(对象忽略)在 System.Windows.Application.RunInternal(窗口窗口)在 System.Windows.Application.Run(窗口窗口)在 System.Windows.Application.Run()在 WinformsHost.App.Main() 在 C:\Users\Mohit\Documents\Visual Studio 2010\Projects\Notepad\Notepad\obj\x86\Debug\App.g.cs:line 0在 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()在 System.Threading.ThreadHelper.ThreadStart_Context(对象状态)在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)在 System.Threading.ThreadHelper.ThreadStart()内部异常:System.Reflection.TargetInvocationExceptionMessage=Exception 已被调用目标抛出.源=mscorlib堆栈跟踪:在 System.RuntimeTypeHandle.CreateInstance(RuntimeType 类型,Boolean publicOnly,Boolean noCheck,Boolean& canBeCached,RuntimeMethodHandle& ctor,Boolean& bNeedSecurityCheck)在 System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)在 System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)在 System.Activator.CreateInstance(Type type, Boolean nonPublic)在 System.Windows.Markup.BamlRecordReader.CreateInstanceFromType(Type type, Int16 typeId, Boolean throwOnFail)内部异常:NLog.Config.NLogConfigurationExceptionMessage=从C:\Users\Mohit\Documents\Visual Studio 2010\Projects\Notepad\Notepad\bin\Debug\NLog.config"加载配置时发生异常来源=NLog堆栈跟踪:在 NLog.Config.XmlLoggingConfiguration..ctor(String fileName, Boolean ignoreErrors)在 NLog.Config.XmlLoggingConfiguration..ctor(String fileName)在 NLog.LogFactory.get_Configuration()在 NLog.LogFactory.GetLogger(LoggerCacheKey cacheKey)在 NLog.LogFactory.GetLogger(String name)在 NLog.LogManager.GetCurrentClassLogger()在 WinformsHost.MainWindow..ctor() 在 C:\Users\Mohit\Documents\Visual Studio 2010\Projects\Notepad\Notepad\MainWindow.xaml.cs:line 15内部异常:NLog.Config.NLogConfigurationException消息=未找到目标控制台.来源=NLog堆栈跟踪:在 NLog.Config.XmlLoggingConfiguration.ConfigureRulesFromElement(LoggingConfiguration config, LoggingRuleCollection 规则, XmlElement 元素)在 NLog.Config.XmlLoggingConfiguration.ConfigureFromXmlElement(XmlElement configElement, String baseDirectory)在 NLog.Config.XmlLoggingConfiguration.ConfigureFromFile(String fileName)在 NLog.Config.XmlLoggingConfiguration..ctor(String fileName, Boolean ignoreErrors)内部异常:
Then again it might be my code? Here is the exception:
System.Windows.Markup.XamlParseException was unhandled
Message=Cannot create instance of 'MainWindow' defined in assembly 'Notepad, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Exception has been thrown by the target of an invocation. Error in markup file 'MainWindow.xaml' Line 1 Position 9.
Source=PresentationFramework
LineNumber=1
LinePosition=9
StackTrace:
at System.Windows.Markup.XamlParseException.ThrowException(String message, Exception innerException, Int32 lineNumber, Int32 linePosition, Uri baseUri, XamlObjectIds currentXamlObjectIds, XamlObjectIds contextXamlObjectIds, Type objectType)
at System.Windows.Markup.XamlParseException.ThrowException(ParserContext parserContext, Int32 lineNumber, Int32 linePosition, String message, Exception innerException)
at System.Windows.Markup.BamlRecordReader.ThrowExceptionWithLine(String message, Exception innerException)
at System.Windows.Markup.BamlRecordReader.CreateInstanceFromType(Type type, Int16 typeId, Boolean throwOnFail)
at System.Windows.Markup.BamlRecordReader.GetElementAndFlags(BamlElementStartRecord bamlElementStartRecord, Object& element, ReaderFlags& flags, Type& delayCreatedType, Int16& delayCreatedTypeId)
at System.Windows.Markup.BamlRecordReader.BaseReadElementStartRecord(BamlElementStartRecord bamlElementRecord)
at System.Windows.Markup.BamlRecordReader.ReadElementStartRecord(BamlElementStartRecord bamlElementRecord)
at System.Windows.Markup.BamlRecordReader.ReadRecord(BamlRecord bamlRecord)
at System.Windows.Markup.BamlRecordReader.Read(Boolean singleRecord)
at System.Windows.Markup.TreeBuilderBamlTranslator.ParseFragment()
at System.Windows.Markup.TreeBuilder.Parse()
at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
at System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc)
at System.Windows.Application.LoadComponent(Uri resourceLocator, Boolean bSkipJournaledProperties)
at System.Windows.Application.DoStartup()
at System.Windows.Application.<.ctor>b__0(Object unused)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)
at System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
at System.Windows.Application.Run()
at WinformsHost.App.Main() in C:\Users\Mohit\Documents\Visual Studio 2010\Projects\Notepad\Notepad\obj\x86\Debug\App.g.cs:line 0
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException: System.Reflection.TargetInvocationException
Message=Exception has been thrown by the target of an invocation.
Source=mscorlib
StackTrace:
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.Windows.Markup.BamlRecordReader.CreateInstanceFromType(Type type, Int16 typeId, Boolean throwOnFail)
InnerException: NLog.Config.NLogConfigurationException
Message=Exception occured when loading configuration from 'C:\Users\Mohit\Documents\Visual Studio 2010\Projects\Notepad\Notepad\bin\Debug\NLog.config'
Source=NLog
StackTrace:
at NLog.Config.XmlLoggingConfiguration..ctor(String fileName, Boolean ignoreErrors)
at NLog.Config.XmlLoggingConfiguration..ctor(String fileName)
at NLog.LogFactory.get_Configuration()
at NLog.LogFactory.GetLogger(LoggerCacheKey cacheKey)
at NLog.LogFactory.GetLogger(String name)
at NLog.LogManager.GetCurrentClassLogger()
at WinformsHost.MainWindow..ctor() in C:\Users\Mohit\Documents\Visual Studio 2010\Projects\Notepad\Notepad\MainWindow.xaml.cs:line 15
InnerException: NLog.Config.NLogConfigurationException
Message=Target console not found.
Source=NLog
StackTrace:
at NLog.Config.XmlLoggingConfiguration.ConfigureRulesFromElement(LoggingConfiguration config, LoggingRuleCollection rules, XmlElement element)
at NLog.Config.XmlLoggingConfiguration.ConfigureFromXmlElement(XmlElement configElement, String baseDirectory)
at NLog.Config.XmlLoggingConfiguration.ConfigureFromFile(String fileName)
at NLog.Config.XmlLoggingConfiguration..ctor(String fileName, Boolean ignoreErrors)
InnerException:
推荐答案
我认为这不是一个真正的 XamlParseException:我认为它是一个 TargetInvocationException,它被包装在一个 XamlParseException 中.看看最终的内部异常:
I don't think this is really a XamlParseException: I think it's a TargetInvocationException which has gotten wrapped in a XamlParseException. Take a look at the ultimate inner exception:
NLog.Config.NLogConfigurationException消息=加载时发生异常配置来自'C:\Users\Mohit\Documents\Visual工作室2010\Projects\Notepad\Notepad\bin\Debug\NLog.config'
NLog.Config.NLogConfigurationException Message=Exception occured when loading configuration from 'C:\Users\Mohit\Documents\Visual Studio 2010\Projects\Notepad\Notepad\bin\Debug\NLog.config'
看起来您的配置文件已损坏,可能是由于无效的 XML 或某些更具体的原因.
It looks like you have a borked configuration file, possibly due to invalid XML or possibly for some more specific reason.
当您收到一个神秘的 XamlParseException 时,总是值得检查 InnerException 是否有 TargetInvocationException(如果有的话,从那里钻进去).是的,它非常令人困惑和误导!
When you get a mysterious XamlParseException, it's always worth checking the InnerException for a TargetInvocationException (and drilling in from there if there is one). Yes, it is very confusing and misleading!
这篇关于XAMLParseException 把我逼疯了!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!