Visual studio 为什么是visual studio项目';s每个用户存储的命令行设置?签入(和共享)一个.user设置文件可以吗?

Visual studio 为什么是visual studio项目';s每个用户存储的命令行设置?签入(和共享)一个.user设置文件可以吗?,visual-studio,debugging,command-line,msbuild,Visual Studio,Debugging,Command Line,Msbuild,我们正在创建一个理解一些命令行参数的应用程序。调试时,我们希望在命令行上提供一些默认值,这些默认值可以在项目设置中轻松设置 问题是visual studio将这些设置存储在*.csproj.用户文件中,集成源代码管理的默认设置不会签入*.csproj.用户文件。在调试这个项目时,我们希望在每个人的IDE中都有这些默认的命令行参数 通常(但并非总是)当VisualStudio引导您以某种方式做事时,这是有充分理由的。我们可能不想只是签入某人的.csproj。用户文件。。。对吧? 这个问题有几个部分

我们正在创建一个理解一些命令行参数的应用程序。调试时,我们希望在命令行上提供一些默认值,这些默认值可以在项目设置中轻松设置

问题是visual studio将这些设置存储在*.csproj.用户文件中,集成源代码管理的默认设置不会签入*.csproj.用户文件。在调试这个项目时,我们希望在每个人的IDE中都有这些默认的命令行参数

通常(但并非总是)当VisualStudio引导您以某种方式做事时,这是有充分理由的。我们可能不想只是签入某人的.csproj。用户文件。。。对吧?

这个问题有几个部分:

  • 为什么VisualStudio存储这个 每个用户的特定设置
  • 有没有办法改变这种行为这样做会带来坏的jujuju吗
  • 在这种情况下,是否可以签入并共享.user文件
  • 有没有更好的方法来实现我们的目标 想在这里做什么

谢谢-

我不建议签入用户文件,因为正如您所说,这是每个用户的。如果有人签出您的“默认”用户文件,然后进行任何个性化的配置更改,这些更改将反映在用户文件中,并且(很可能)将反映在源代码管理中


如果您希望有人为调试设置命令行参数,我会调整项目文件以包含这些参数,但不要将它们包含在用户文件中。(可以签入.proj文件,我通常会签入我的团队项目。)

也许您可以更改程序,选择从配置文件和命令行读取其参数(然后签入该配置文件的副本).

我见过一些非常困惑的开发人员,他们没有意识到.user文件在源代码管理中(或者不知道它的用途)。@Jason:如何调整项目文件以包含命令行参数?“调整项目文件以包含这些”-如何?通过手动编辑?@JasCav-这些链接描述了如何设置每个项目而不是每个用户的调试器属性吗?从我收集的信息中,他们描述了设置的位置,但没有说明如何避免它们最终出现在每个用户的设置中。。我也在使用VS2013,我发现调试器设置要放在.user文件中。我觉得这很奇怪。我手动复制并粘贴了设置,但效果不错。这满足了同样的需求,并绕过了问题。将默认调试命令行选项放入.config文件可以绕过问题,但也会强制引入可能不需要的新行为(在这种情况下,我们可以接受它)一般来说,我现在看到在整个团队和源代码管理中依赖默认调试命令行参数是一件坏事。它为CI(自动)构建和单元测试添加了皱纹。我们正在有效地将“调试”参数变成源工件。。。不好的。因此,一般来说,最好的答案是:“不要这样做-找到另一种方法”,在本例中,一个.config文件就可以了。谢谢。七年后,它仍然以同样的方式工作。大多数项目属性存储在
*.vcxproj
文件中,而本地调试器命令参数存储在
*.vcxproj.user
中。为Microsoft的一致性评分。