Невозможно установить объект запуска в проекте 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)
        {

        }
    }
Другие вопросы по тегам