2011-08-07 112 views
0

我正在做一個或多或少的香草WPF應用程序。我在我的解決方案中添加了一個Windows安裝項目,並從我的WPF應用程序添加了項目輸出。安裝後WPF應用程序無法啓動

雖然在運行安裝程序後,我無法運行該軟件(雖然它在Visual Studio 2010中運行良好)。只有一個簡短的等待期,然後應用程序悄然退出。 Windows事件日誌中出現以下錯誤。我相當新的WPF開發...任何想法我在這裏失蹤?

感謝您的幫助!

編輯:根據請求提供來自App.xaml的xaml代碼。

<Application x:Class="MyApp.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      StartupUri="MainWindow.xaml"> 
    <Application.Resources> 
    </Application.Resources> 
</Application> 


Application: MyApp.exe 
Framework Version: v4.0.30319 
Description: The process was terminated due to an unhandled exception. 
Exception Info: System.Windows.Markup.XamlParseException 
Stack: 
    at System.Windows.Markup.XamlReader.RewrapException(System.Exception, System.Xaml.IXamlLineInfo, System.Uri) 
    at System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri) 
    at System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri) 
    at System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean) 
    at System.Windows.Application.LoadBamlStreamWithSyncInfo(System.IO.Stream, System.Windows.Markup.ParserContext) 
    at System.Windows.Application.LoadComponent(System.Uri, Boolean) 
    at System.Windows.Application.DoStartup() 
    at System.Windows.Application.<.ctor>b__1(System.Object) 
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) 
    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) 
    at System.Windows.Threading.DispatcherOperation.InvokeImpl() 
    at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object) 
    at System.Threading.ExecutionContext.runTryCode(System.Object) 
    at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object) 
    at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 
    at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 
    at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 
    at System.Windows.Threading.DispatcherOperation.Invoke() 
    at System.Windows.Threading.Dispatcher.ProcessQueue() 
    at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) 
    at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) 
    at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) 
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) 
    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) 
    at System.Windows.Threading.Dispatcher.InvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) 
    at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) 
    at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) 
    at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) 
    at System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame) 
    at System.Windows.Threading.Dispatcher.Run() 
    at System.Windows.Application.RunDispatcher(System.Object) 
    at System.Windows.Application.RunInternal(System.Windows.Window) 
    at System.Windows.Application.Run(System.Windows.Window) 
    at MyApp.App.Main() 
+0

在這裏看到一些相關的代碼在t破壞這樣的問題。 –

+1

您需要處理App類的DispatcherUnhandledException事件,並寫出不僅傳遞給事件處理程序的異常的'Message'和'StackTrace'屬性,而且還要處理其'InnerException'屬性中的異常直到'InnerException'爲null的嵌套異常寫入日誌文件,以便在應用程序關閉後進行檢查通常只有一個內部異常指出了爲什麼XAML無法被解析的原因 –

+0

Joel修復了我只是需要在某處注入診斷代碼,事件就是這樣,結果我的安裝程序丟失了一個應用程序預期會存在的文件,如果你把你的評論作爲答案,我會接受它! –

回答

0

(喬爾乙凡特,誰是不可張貼作爲回答他的評論)

你需要處理你的App類的DispatcherUnhandledException事件寫出來的消息和堆棧跟蹤性能不只有傳遞給事件處理程序的異常,還有其ExceptionException屬性中的異常(遵循嵌套異常,直到InnerException爲null)。寫入日誌文件,以便在應用程序關閉後檢查。通常只會有一個內部異常正是爲什麼XAML無法解析。

相關問題