52

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

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

谢谢。

4

5 回答 5

90

只需单击解决方案资源管理器中的解决方案,然后单击文件菜单中的“将 myProject.sln 保存为...”。这会将您的 .sln 保存在您选择的文件夹中,而不会破坏参考。

于 2009-03-09T15:18:23.297 回答
4

在记事本或类似文件中打开 .sln 文件,在顶部附近它具有相对基本路径 - 修改它以满足您的需要。

于 2009-03-09T15:18:23.827 回答
4

要完成 jrummell 解决方案:使用 nodepadd 编辑 *.sln 文件后,您当然必须删除包含已弃用缓存的 *.suo 文件。

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

于 2013-02-28T10:11:51.263 回答
4

使用源代码控制,这有点棘手。我只需要将我的解决方案 .sln 文件上移一层,以便在维护源代码控制历史记录的同时轻松访问。我遵循了之前帖子的建议,但遇到了 TFS 想要使用该解决方案移动我的所有项目的情况。我结合使用以下步骤完成了这项任务:

  1. 确保解决方案未打开。
  2. 从本地驱动器取消映射解决方案。
  3. 在源代码管理资源管理器中右键单击解决方案 (.sln),然后选择上述移动。设置新文件夹的路径,然后选择确定。
  4. 检查该更改。
  5. .sln出解决方案,然后在记事本中编辑解决方案。您将看到为项目分配了 guid,并且有项目的文件路径。您需要更改与新解决方案文件.sln所在位置相关的所有这些路径。确保对唯一名称和路径使用双斜杠:

GlobalSection(TeamFoundationVersionControl) = preSolution

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

SccProjectTopLevelParentUniqueName1 = MySolution.sln

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

签入并将解决方案重新映射到本地驱动器。这对我有用。希望能帮助到你!

于 2015-08-09T18:23:36.290 回答
0

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

于 2009-03-09T15:19:00.487 回答