如何迁移Visual Studio项目(.sln)文件

58
我想把 Visual Studio 解决方案(myProject.sln)文件移到一个文件夹中。
这样做的问题是项目中所有相对路径都会失效,那么如何移动项目而不手动更新项目内的所有相对路径?
谢谢。
5个回答

106

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


我认为如果他选择另一种方式,使用源代码控制的额外工作量将是相同的,因为他无论如何都要更改.sln文件的位置。 - El Cheicon
4
仍然适用于VS2015。谢谢!这个提示让我免受因问题烦恼而导致严重头痛的困扰。 - Steven Liekens
1
@Kabeer,解除与源代码控制的绑定没有问题。我已经这样做了,将.sln文件保存在我想要的位置。然后,如果您关闭解决方案并重新打开,Visual Studio将检测到解决方案未绑定,并询问您是否要绑定它。这样做,您就可以开始使用了。(我在VS2015上运行) - PBMe_HikeIt
3
@jameshfisher 是的,它可以,但是正如所述,您必须首先在“解决方案资源管理器”中选择解决方案 - 它是一个通用的“另存为...”命令,适用于当前选定的任何单个文件、项目或解决方案。 - M Kloster
2
@jameshfisher 是的,它确实有这个功能,但至少在VS2022中,它不在右键菜单中;它在“文件”菜单的子菜单中。 - Marcelo Scofano Diniz
显示剩余5条评论

5

打开记事本或类似的软件,然后打开.sln文件,在文件顶部附近可以找到相对基本路径 - 修改它以适应您的需要。


4
完成jrummell的解决方案:在使用nodepadd编辑*.sln文件后,你必须删除包含过时缓存的*.suo文件。
请注意,*.suo文件是Windows 7中的隐藏文件(因此默认情况下,在资源管理器中看不到它)。

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

检查并重新映射本地驱动器的解决方案。这对我有用,希望对你有所帮助!


我认为第三步应该说“在源代码控制资源管理器中右键单击.sln文件”,而不是解决方案资源管理器。 - Scott Hutchinson
完成...谢谢! - Law
哎呀,文件资源管理器?? - Scott Hutchinson

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接