【发布时间】:2016-09-07 11:58:26
【问题描述】:
更新 3
这实际上是由我包含的使用ILMerge 的构建后操作引起的。详情请见here
更新2
这似乎不是添加命令行支持直接导致的,但我仍然不知道是什么原因造成的。详情请见SO question。
更新
进行以下更改以允许命令行支持后,我无法在所有断点上使用此消息单步执行程序:
当前不会命中断点。没有为此文档加载任何符号
我检查了this SO answer,发现我丢失了文件Microsoft.VisualStudio.Debugger.Runtime.pdb,但我不知道它去了哪里..
由于App.xaml 更新,有什么原因会发生这种情况吗?
我有一个WPF 应用程序,我需要为其实现命令行参数。
根据this SO question 的答案,我修改了App.xaml 以删除StartUpUri 属性:
<Application x:Class="WpfFileDeleter.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfFileDeleter"
>
<Application.Resources>
</Application.Resources>
</Application>
然后我向App.xaml.cs添加了一个覆盖方法:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
e.Args.Contains("MyTriggerArg")
{
// Do some stuff
}
}
但是在 OnStartUp 的顶部插入断点并在 Visual Studio 中调试应用程序后,它只是挂在 Ready 状态,但实际上不允许我单步执行程序。
我为StartUpUri 尝试了以下值:
StartUpUri = "App.xaml"
StartUpUri = "App.xaml.cs"
StartUpUri = "App.xaml.cs.OnStartUp"
但应用程序只是抛出“无法定位资源”IOException
【问题讨论】:
-
你需要在你的
OnStartup()Method... MainWindow w = new MainWindow(); w.Show(); ?! -
@Motivated 但调试器从未真正到达该方法
-
这可以解决你的断点问题:stackoverflow.com/a/2155997/4610605
-
@Motivated 我在那里尝试了答案,但它根本没有帮助,因为它说符号未加载的唯一模块是
Microsoft.VisualStudio.Debugger.Runtime.pdb,我在任何地方都找不到这个文件!此外,我还有其他项目无法加载这些相同的符号,但它们仍然能够使用断点 ...;