Невозможно установить объект запуска в проекте WPF VB.NET
Я использую VS2010 VB.NET, работаю над решением, которое имеет ряд проектов. Я разрабатывал его некоторое время и, пытаясь отладить пользовательский класс, унаследованный от ObservableCollection (который, кстати, не будет загружать символы при отладке, даже если было очевидно, что вызывается точка останова), я изменил объект запуска для проекта запуска в другое окно WPF, в котором у меня было несколько элементов управления, которые я выделил для отладки.
Сразу же я столкнулся с "Sub Main" не был найден в. Я попытался изменить объект автозапуска обратно в обычное окно запуска, но теперь в раскрывающемся списке "Объект запуска" есть только "Sub Main", поскольку это единственный вариант. Я изменил StartupURI обратно в App.xaml, но безрезультатно.
Кто-нибудь еще видел это?
Как я могу вернуть его к использованию оригинального окна?
В качестве примечания, есть ли где-то параметр, который заставит отладчик не загружать символы для сборки? Я знаю, что создается экземпляр класса DiskCollection, но точка останова в конструкторе всегда говорит, что точка останова не может быть достигнута, символы не загружены.
Cory
2 ответа
Как видно, на странице "Свойства проекта" параметр "Включить структуру приложения" не был отмечен. по-видимому, это говорит компилятору использовать атрибут StartupUri для определения страницы запуска вместо использования основного подпрограммы (или метода; этот параметр отображается в C#?).
Каким-то образом этот параметр не был отмечен, и поэтому Sub Main был единственным вариантом в раскрывающемся списке StartupURI, группа свойств приложения Windows Framework Framework отключена, а атрибут StartupUri в app.xaml не использовался.
Теперь я знаю...
Cory
Запуск в WPF отличается от запуска в winforms; это устанавливается файлом App.xaml. Отредактируйте это в режиме xaml, и вы заметите это:
<Application x:Class="WpfApplication6.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>
StartupUri устанавливает, какая форма будет начинать.
Если вы хотите, чтобы код запускался, вы можете удалить StartupUri и сделать это вместо этого:
Startup="Application_Startup"
Затем укажите код в файле App.xaml.cs следующим образом:
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
}
}