私は自分のプロジェクトでdllを参照しました。私のWPFアプリケーションを起動しても、同じフォルダにdllが存在しない場合、Visual Studioに未処理のXamlParseException
があります。 リリースモードで実行すると、アプリがクラッシュするだけです。XamlParseExceptionが起動時に参照されたDLLが見つかりませんでした
以下のコードを使用して、アプリケーションの起動前にその例外を処理しようとしました。 残念ながら例外のメッセージが見つかりませんでしたDLLについては何も言いませんが、このメッセージを持っている:
Cannot create instance of 'MainWindow' defined in assembly 'App.Demo, 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.
内部例外は、しかし、このコンテンツを持っている:
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: System.IO.FileNotFoundException
Message=Could not load file or assembly 'MyLibrary, Version=1.0.9999.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
Source=App.Demo
FileName=MyLibrary, Version=1.0.9999.0, Culture=neutral, PublicKeyToken=null
FusionLog==== Pre-bind state information ===
は、これらを処理する一般的なアプローチがあります参照されたライブラリが見つからない場合
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledException);
}
void UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Exception ex = (Exception) e.ExceptionObject;
System.Windows.MessageBox.Show(ex.Message);
Application.Current.Shutdown();
}
}
いただきましたまた奇妙な:私はApplication.Current.Shutdown
を呼び出しますが、例外は、自分のアプリケーションの同じクラッシュが得られた後、再びスローされます。
EDITは:
<Application x:Class="Demo.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>
MainWindow.xaml::私は「
<Window x:Class="Demo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="My Application" Height="768" Width="1024" MaxWidth="1024" MinWidth="1024" MinHeight="768" MaxHeight="768" Background="#004B93">
をそれがすべてで助けて...だから私に教えてくれなかったので、私は、OK – tzippy
XAMLファイルの両方を追加しましたリリースモードでのみクラッシュし、デバッグモードではクラッシュしませんか? Visual StudioのCTRL + F5キーからリリースモードを試しますか、いくつかのセットアップを作成してそこから起動しましたか?セットアップによってDLLがコピーされない可能性がありますか?私は他のレプリカと混乱しています... –