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

时间:2009-03-09 15:14:45

标签: visual-studio relative-path

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

执行此操作的问题是项目中的所有相对路径都将中断,如何在不更新项目内的所有相对路径的情况下重新定位项目?

感谢。

5 个答案:

答案 0 :(得分:78)

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

答案 1 :(得分:4)

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

答案 2 :(得分:4)

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

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

答案 3 :(得分:3)

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

  1. 确保解决方案未打开。
  2. 从本地驱动器取消映射解决方案。
  3. 右键单击Source Control Explorer中的Solution(.sln),然后选择Move as 上文提到的。设置新文件夹的路径,然后选择确定。
  4. 检查更改。
  5. 结帐解决方案.sln,然后在记事本中编辑解决方案。您将看到项目被分配了guid,并且有项目的文件路径。您需要相对于新解决方案文件.sln所在的位置更改所有这些路径。请确保使用双斜杠表示唯一的名称和路径:
  6. GlobalSection(TeamFoundationVersionControl) = preSolution

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

    SccProjectTopLevelParentUniqueName1 = MySolution.sln

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

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

答案 4 :(得分:0)

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