如何重新定位Visual Studio项目(.sln)文件

我想将Visual Studio解决scheme(myProject.sln)文件移动到一个文件夹中。

这样做的问题是项目中的所有相对path都会中断,如何在不更新项目内所有相对path的情况下重新定位项目?

谢谢。

只需在解决scheme资源pipe理器中单击该解决scheme,然后在“文件”菜单中单击“将myProject.sln另存为…”即可。 这会将您的.sln保存在您select的文件夹中,而不会中断参考。

要完成jrummell解决scheme:在使用nodepadd编辑* .sln文件后,您必须删除包含已弃用caching的* .suo文件。

请注意,* .suo文件是Windows 7中的隐藏文件(因此默认情况下,您不会在资源pipe理器中看到它)。

打开记事本内的.sln文件或类似的,靠近顶部它有相对的基本path – 修改,以满足您的需求。

有了源代码控制,这有点棘手。 我只需要将我的解决scheme.sln文件上移一个级别,便于访问,同时保持源代码pipe理历史logging。 我遵循以前的post的build议,但遇到了一个情况,TFS希望移动我的所有项目的解决scheme。 我使用以下步骤的组合完成了此任务:

  1. 确保解决scheme没有打开。
  2. 从本地驱动器取消映射解决scheme。
  3. 在解决scheme资源pipe理器中右键单击“解决scheme”,然后select上述移动 设置新文件夹的path,然后select确定。
  4. 检查更改。
  5. 结帐解决scheme.sln ,然后在记事本中编辑解决scheme。 您将看到项目被分配了GUID,并且有项目的文件path。 您需要将所有这些path相对于新的解决scheme文件.sln所在的位置进行更改。 请确保使用双斜杠作为独特的名称和path:

GlobalSection(TeamFoundationVersionControl) = preSolution

SccProjectUniqueName1 = MyNewFolder\\MyProject.Common\\MyProject.Common.csproj

SccProjectTopLevelParentUniqueName1 = MySolution.sln

 SccProjectName1 = MyNewfolder/MyProject.Common SccLocalPath1 = MyNewFolder\\MyProject.Common 

签入并重新映射到本地驱动器的解决scheme。 这对我有效。 希望能帮助到你!

您可以在文本编辑器中更新每个项目的相对path。