我正在尝试使用.NET中的反射来调用应用程序。
代码是:
Dim Assy As Assembly = Assembly.LoadFile("E:\WpfDemo.exe")
Assy.EntryPoint.Invoke(Nothing, Nothing)
它适用于除WPF项目之外的几乎所有内容(Win Forms,Console ...)。
WpfDemo.exe是一个简单的空WPF项目。它只有一个窗口。
当我尝试启动WPF应用时,我得到:
TargetInvocationException
Exception has been thrown by the target of an invocation.
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at W8K2.ICU.Main(String[] args)
内在的例外:
IOException
Cannot locate resource 'mainwindow.xaml'.
at MS.Internal.AppModel.ResourcePart.GetStreamCore(FileMode mode, FileAccess access)
...
看起来WPF应用程序在反射启动时正在寻找错误位置的资源。当我单独执行WpfDemo时,它可以很好地工作。
谢谢!