为什么“设置为启动”选项存储在suo文件而不是sln文件中?

时间:2009-03-29 14:45:51

标签: c# visual-studio

似乎此设置应存储在解决方案文件中,以便在所有用户和源代码控制的一部分中共享。由于我们不检查suo文件,因此每个用户必须单独设置它,这看起来很奇怪。

5 个答案:

答案 0 :(得分:360)

绝对有必要每个人都可以自己定义他们的StartUp项目,如Jon has already said。但是要有一个专用的默认值,那将是很好的,正如我所知,它是可能的!

如果解决方案目录中没有.suo文件,Visual Studio会将.sln文件中的第一个项目选为默认启动项目。

  1. 关闭Visual Studio并在您喜欢的文本编辑器中打开.sln文件。从第4行开始,您会看到所有项目都封装在Project - EndProject行中。

  2. 将所需的默认启动项目剪切并粘贴到顶部位置。

  3. 删除.suo文件。

  4. 在Visual Studio中打开您的解决方案。 Ta daa!

  5. 如果您知道Jon不知道的事情会有特别奖吗?; - )

答案 1 :(得分:48)

为什么它应该是非用户特定的偏好?

如果我有10个文件的解决方案,并且一个开发人员主要测试/使用其中一个工具,为什么这会影响我的启动?

我认为MS在这个问题上做出了正确的选择。 I 项目想要启动的项目远不一定是其他开发人员想要启动的项目。

答案 2 :(得分:46)

在大多数情况下,确实对此有默认值。

容纳一个默认启动项目并将其存储在.sln文件中会更好,但是可以由.suo文件中的开发人员覆盖。如果在.suo文件中找不到启动设置,则将使用.sln中的默认启动项目。

实际上,这是suggested on Visual Studio’s UserVoice

答案 3 :(得分:3)

我为Windows编写了一个名为slnStartupProject的小命令行实用程序来自动设置启动项目:

slnStartupProject slnFilename projectName

在使用cmake生成解决方案之后,我个人使用它来设置启动项目,该解决方案始终将虚拟ALL_BUILD项目设置为解决方案中的第一个项目。

source在GitHub上。叉子和反馈是受欢迎的。

答案 4 :(得分:3)

如果您使用的是GIT,则可以提交默认的SUO文件,然后使用

将其标记为未更改
git update-index --assume-unchanged YourSolution.suo

如果您希望默认启动组中有多个项目,也可以使用它。我知道的唯一缺点是必须由不想提交SUO文件的每个人运行此命令。