Подтвердить что ты не робот

VS2008: Где хранится проект запуска для решения?

Когда я щелкните правой кнопкой мыши мое решение в обозревателе решений и выберите "Свойства", я получу диалоговое окно, в котором я могу выбрать проект запуска.

Я иногда выбираю текущий выбор (если это экспериментальное решение с множеством проектов, между которыми я перепрыгиваю), но чаще всего выбирается один проект запуска, который обычно является основным приложением WinForms или или консольным приложением.

Моя проблема в том, что всякий раз, когда я делаю treeclean с командой tfpt (Team Foundation Power Tools 2008), этот параметр забывается. Поэтому, когда я пытаюсь запустить свое решение в следующий раз, он по умолчанию выполнил какой-то случайный проект, и я получаю сообщение об ошибке, что я не могу запустить библиотеку классов или что-то в этом роде. Это очевидно, конечно. Но где этот параметр хранится? Почему это забыто, когда я делаю тройник? Файл решения все еще существует, правильно? Не хранятся ли там свойства решения?

4b9b3361

Ответ 1

Ссылка 1

Arian Kulp говорит:

Я пытался изо всех сил пытаться почему какое-то мое решение wasnt начало право. Это было в VB с четырьмя проектами. После первоначального открытия он установил бы определенный проект с DLL-выход в качестве запуска. Если я установил EXE в качестве стартового проекта, все было хорошо, но когда я распространяю код, я всегда очистите его, удалив *.suo и *.user файлы и папки bin/obj. на открытие "очищенной" версии, это всегда будет возвращаться к проекту DLL и не удается F5 красиво. Фиксирование повернуто чтобы быть простым, хотя Im любопытный что я должен был сделать это вообще.

В файле решения есть список записей псевдо-XML "Project". Это оказывается, что все, что было первым один заканчивается как Startup Project, если его переопределить в suo файл. Argh. Я просто перестроил порядок в файле и его хороший.

Я предполагаю, что С# тот же путь но я не тестировал его. я надеюсь это помогает кому-то!

Ссылка 2

Настройка проекта StartUp

Какой проект является проектом "запуск", имеет только какое-либо отношение к отладке, что означает его метаданные пользователя с точки зрения решения и проектов. Независимо от того, какой проект является проектом "запуска", скомпилированный код тот же.

В связи с этим информация сохраняется как пользовательская настройка в файле параметров решения (solution.suo), который прилагается к файлу решения (solution.sln). Файл .suo "Записывает все параметры, которые вы можете связать с вашим решением, чтобы каждый раз, когда вы его открываете, он включает настройки, которые вы создали" согласно MSDN.

Файл .suo является двоичным файлом. Если вы хотите прочитать или изменить его программно, вы должны использовать IVsPersistSolutionOpts.LoadUserOptions из пространства имен Microsoft.VisualStudio.Shell.Interop.

Ответ 2

Я подозреваю, что этот параметр сохраняется как часть файла .suo, создаваемого всякий раз, когда вы редактируете файл решения. Этот файл содержит различные пользовательские настройки, такие как точки останова, данные наблюдения и т.д.

Я не могу подтвердить это, но это было бы моим предположением.

К сожалению, это не XML его двоичный файл и не легко отредактирован.

Ответ 3

Я просто написал небольшую утилиту командной строки для окон, называемых slnStartupProject, чтобы решить эту проблему. Он автоматически запускает Startup Project следующим образом:

slnStartupProject slnFilename projectName

Я лично использую его для установки проекта после создания решения с cmake, который всегда устанавливает фиктивный ALL_BUILD как первый проект в решении.

Источник находится в github:

https://github.com/michaKFromParis/slnStartupProject

Приветствуются вилки и отзывы.

Надеюсь, это поможет!