Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 为什么在VisualStudio中添加解决方案文件夹会更改项目文件,有什么方法可以防止这种情况发生?_Visual Studio_Project Files_Solution Folders - Fatal编程技术网

Visual studio 为什么在VisualStudio中添加解决方案文件夹会更改项目文件,有什么方法可以防止这种情况发生?

Visual studio 为什么在VisualStudio中添加解决方案文件夹会更改项目文件,有什么方法可以防止这种情况发生?,visual-studio,project-files,solution-folders,Visual Studio,Project Files,Solution Folders,我正在向项目的主要git存储库中的许多解决方案添加一个测试项目 在这个过程中,我注意到将“解决方案文件夹”添加到.sln文件会修改解决方案中的许多项目。我想不出有什么合乎逻辑的理由会出现这种情况。在添加测试项目之前,我只讨论添加解决方案文件 解决方案中的所有项目都是C#项目,如果这有什么区别的话 有人知道为什么会这样吗。这是预期的行为,还是一个bug?还有,有没有办法防止这种情况发生 下面的两幅图突出了我所说的行为: 在添加新的解决方案文件夹之前: 添加新解决方案文件夹后: 据我所知,这些变

我正在向项目的主要git存储库中的许多解决方案添加一个测试项目

在这个过程中,我注意到将“解决方案文件夹”添加到.sln文件会修改解决方案中的许多项目。我想不出有什么合乎逻辑的理由会出现这种情况。在添加测试项目之前,我只讨论添加解决方案文件

解决方案中的所有项目都是C#项目,如果这有什么区别的话

有人知道为什么会这样吗。这是预期的行为,还是一个bug?还有,有没有办法防止这种情况发生

下面的两幅图突出了我所说的行为:

在添加新的解决方案文件夹之前

添加新解决方案文件夹后

据我所知,这些变化毫无意义


这有点奇怪,但当人们有多个解决方案,并在一个解决方案中修复外壳,而不是在另一个解决方案中修复外壳时,就会发生这种情况。重新呈现项目文件时(因为添加、重命名项目、更改解决方案项等),它将拾取更正的大小写。如果解决方案文件具有“正确”的大小写,则不会发生任何更改,但如果解决方案文件不匹配,则可能导致此级联

在一种溶液中固定套管可能会触发另一种溶液中的相反行为。因此,必须一次在所有解决方案文件中修复此问题。如果有多个分支,请小心

解决此问题的最佳方法是一次性解决文件系统、项目文件和解决方案文件上的大小写问题。使用文本编辑器通常比使用VisualStudio项目系统更容易。Regex搜索和替换可以在这里创造奇迹。确保一次修复所有这些问题:

  • (所有)解决方案文件的内容
  • 导致问题的
    *proj
    文件
  • 文件系统路径(要进行案例更改,您可能必须先更改多个案例)。还要确保您的版本控制系统将接受更改
  • 项目在其他
    *proj
    文件中引用
当单个项目的大小写固定时,更改可能会级联到引用有问题项目的其他项目文件。项目文件中的
ProjectReference
元素具有问题项目的相对文件系统路径,并捕获其名称。您可以在发布的屏幕截图中清楚地看到这一点:


文件夹和项目的大小写似乎与解决方案文件中指定的大小写不同。如果更正,则引用该项目的所有项目都会得到更新的项目引用。最好的办法是一劳永逸地解决案例问题。@jessehouwing-我之前(删除的)评论是错误的。所有的变化似乎都与套管有关。有时只需要另一双眼睛。如果你提交答案,我会将其标记为已接受。@jessehouwing-这种行为似乎没有威慑力。根据我打开的解决方案,有时项目中的引用会在引用项目中更正,有时则不会。如果打开包含所有项目的主解决方案并执行此操作,则只更新一个项目文件。真奇怪。