繁体   English   中英

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

[英]Why is “Set as Startup” option stored in the suo file and not the sln file?

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

正如Jon 已经说过的,每个人都可以自己定义他们的 StartUp Project 是绝对必要的。 但是拥有一个专用的默认值会很棒,而且据我所知,这是可能的!

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

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

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

  3. 删除您的 .suo 文件。

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

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

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

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

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

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

我认为 MS 在这一点上做出了正确的选择。 想要启动的项目远非其他开发人员想要启动的项目。

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

slnStartupProject slnFilename projectName

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

源代码在 GitHub 上。 欢迎分叉和反馈。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM