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

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

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

如果我有一个包含10个文件的解决scheme,而一个开发人员主要是testing/使用其中一个工具,那么为什么会影响我创build的?

我认为MS做出了正确的select。 想开始的项目远不是其他开发人员想要开始的项目。

正如乔恩所说 ,每个人都可以自己定义自己的启动项目是绝对必要的。 但要有一个专门的默认的会很好,我可以告诉,这是可能的!

如果您的解决scheme目录中没有.suo文件,则Visual Studio将select.sln文件中的第一个项目作为默认启动项目。

  1. closures你的Visual Studio,并在你最喜欢的文本编辑器中打开.sln文件。 从第4行开始,您将看到所有项目都封装在ProjectEndProject行中。

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

  3. 删除.suo文件。

  4. 在Visual Studio中打开您的解决scheme。 达达!

如果你知道Jon不知道的东西,有没有特别的奖励? 😉

在大多数情况下,对此有一个默认值是有意义的。

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

实际上,这已经在Visual Studio的UserVoice上提出了 。

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

 slnStartupProject slnFilename projectName 

在使用cmake生成解决scheme后,我亲自使用它来设置启动项目,该解决scheme始终将虚拟ALL_BUILD项目设置为第一个项目。

源代码在GitHub上。 叉子和反馈是受欢迎的。

如果您使用的是GIT,则可以提交默认的SUO文件,然后将其标记为未更改

 git update-index --assume-unchanged YourSolution.suo 

如果你想在你的默认启动组中有多个项目,它也可以工作。 我所知道的唯一缺点是这个命令必须由不想提交SUO文件的所有人运行。