Кажется, что этот параметр должен храниться в файле решения, чтобы он делился между всеми пользователями и частью управления исходным кодом. Поскольку мы не проверяем файл suo, каждый пользователь должен установить это отдельно, что кажется странным.
Почему опция "Установить как старт" хранится в файле suo, а не в sln файле?
Ответ 1
Почему это должно быть предпочтение, не зависящее от пользователя?
Если у меня есть решение с 10 файлами, и один разработчик в первую очередь тестирует/использует один из этих инструментов, почему это должно повлиять на то, что я запускаю?
Я думаю, что MS сделала правильный выбор на этом. Проект, который я хочу начать, - далеко не обязательно проект, который хотят начать другие разработчики.
Ответ 2
Абсолютно необходимо, чтобы каждый мог самостоятельно определить свой проект StartUp, поскольку Джон уже сказал. Но для того, чтобы иметь выделенный дефолт, было бы здорово, и, насколько я могу судить, это возможно!
Если у вас нет файла .suo в каталоге решений, Visual Studio выбирает первый проект в вашем .sln файле в качестве проекта запуска по умолчанию.
-
Закройте свою Visual Studio и откройте файл .sln в своем любимом текстовом редакторе. Начиная с строки 4, вы видите все ваши проекты, заключенные в строки
Project
-EndProject
. -
Вырезать и вставить желаемый проект запуска по умолчанию в верхнее положение.
-
Удалите файл .suo.
-
Откройте свое решение в Visual Studio. Ta daa!
Есть ли специальная награда, если вы знаете то, что Джон не знает?; -)
Ответ 3
В большинстве случаев имеет смысл иметь значение по умолчанию.
Было бы лучше разместить проект запуска по умолчанию и сохранить его в файле .sln, но который может быть переопределен разработчиком в файле .suo. Если параметр запуска не найден в файле .suo, будет использован проект запуска по умолчанию в .sln.
На самом деле это было предложенное в Visual Studios UserVoice.
Ответ 4
Я написал небольшую утилиту командной строки для Windows под названием slnStartupProject
, чтобы автоматически установить Startup Project:
slnStartupProject slnFilename projectName
Я лично использую его для установки проекта запуска после генерации решения с помощью cmake, который всегда задает фиктивный проект ALL_BUILD
как первый проект в решении.
Источник находится на GitHub. Вилки и отзывы приветствуются.
Ответ 5
Если вы используете GIT, вы можете зафиксировать SUO файл по умолчанию, а затем пометить его как неизмененный с помощью
git update-index --assume-unchanged YourSolution.suo
Он также работает, если вы хотите иметь более одного проекта в своей стартовой группе по умолчанию. Единственным недостатком, о котором я знаю, является то, что эту команду должны выполнять все, кто не хочет фиксировать SUO файл.