将解决方案文件更改为不同的文件夹

62

如何更改现有解决方案文件(sln)的文件夹?

目前它位于我的一个项目文件夹内;如果我将解决方案文件剪切并粘贴到根文件夹中,它将无法加载任何项目。


2
可能是如何重新定位Visual Studio项目(.sln)文件的重复问题。 - Malcolm
9个回答

69

在Visual Studio中打开解决方案资源管理器并选择解决方案。
点击文件 > 另存为 MyProject.sln ...
并选择新的位置。


4
我可以确认它在VS2013中可以工作。 如果sln文件在源代码控制下,请先转到“文件|源代码控制|高级|更改源代码控制”。选择解决方案并单击“取消绑定”按钮。将.sln文件保存到新文件夹后,您可以再次将其绑定到源代码控制。 - huha
然后从源代码控制(在源代码控制资源管理器中)和磁盘中删除旧的.sln和.vssscc文件,并将新文件添加到源代码控制中(如果没有自动完成)。 - huha
1
在使用VS2012时,对于我的情况,我需要先在解决方案资源管理器中单击解决方案文件,然后才能看到“文件”->“另存为MyProject.sln”。希望这能帮助到某些人。 - Bruce
1
在拥有30多个项目的Visual Studio 2017(15.4.2)企业版中,该选项不存在。从源代码控制解除绑定并不能解决问题。 - James Esh

46

解决方案文件只是一个文本文件。您应该能够将其移动,然后编辑它以确保文件中引用的任何相对路径都是正确的。

我还可以右键单击解决方案资源管理器中的解决方案文件,然后使用“另存为”将其保存在不同位置。但这种方法似乎并不总是有效。


我编辑了我的答案,使用了一种不同的方法,似乎有时候有效。 - RWGodfrey
2
这对我有用 - 使用记事本打开了 .sln 文件并将所有路径更改为我的新路径。谢谢! - Fortin
2
在2018年仍然相关。我会添加第二步,即在打开新解决方案后:(1)删除所有项目和解决方案项,(2)将除解决方案文件以外的所有项目文件夹复制到新位置,(3)从新位置重新添加所有项目和引用。现在您的解决方案和项目都在同一个文件夹组中。(如果这是您的意图。) - RandomHandle

11

打开一个空白的解决方案,将其保存到您想要移动的位置。然后添加“现有项目”,选择Old.sln文件以添加旧解决方案文件下的所有项目。


5

我刚刚需要处理一些遗留项目,所以认为值得记录一下...

在从VS 2005升级后,我注意到解决方案文件与项目文件处于同一级别。 我们的标准是将解决方案文件放在上面一个级别。

不想要的解决方案文件位置。

在“记事本”中打开解决方案文件,我看到如下内容:

未更改的解决方案文件在“Notepad”中打开。

对每个项目路径添加所需的相对路径,并将其保存在正确的位置中:

在我的情况下向上调整一个级别'BloombergPriceRequestService\'

SO项目行看起来像这样:

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BloombergPaydownService", "BloombergPaydownService\BloombergPaydownService.csproj", "{17DDDD3E-CD39-48B4-BE3F-71E550FCBBFC}"
EndProject
Global

不要忘记删除旧的解决方案文件! 我已将解决方案文件上移一级

3
如果我将sln文件剪切并粘贴到根目录中,它不会加载我的任何项目。无论如何,请尝试打开解决方案。它会告诉你一些项目无法加载:忽略警告。然后,继续删除解决方案中的所有项目。之后,右键单击解决方案,选择“添加=>现有项目”,并浏览到您的项目文件。对于解决方案中的所有项目都要重复此操作。

3
您需要:
  1. 在解决方案资源管理器中选择解决方案
  2. 然后找到按钮 文件 -> 另存为 solution.sln
  3. 点击它

enter image description here


2
有时候,解决方案文件可能会包含超过5个项目

这种情况下,创建新的解决方案并添加项目是繁琐的,需要更多时间。

你可以编辑解决方案文件以正确加载项目。

操作步骤

1. 在记事本或任何文本编辑器中打开解决方案文件。 2. 更新下划线和加粗的路径。

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BloombergPaydownService", "BloombergPaydownService\BloombergPaydownService.csproj", "{17DDDD3E-CD39-48B4-BE3F-71E550FCBBFC}"

  1. 保存文件并在Visual Studio中打开。

2

编辑解决方案文件是一种危险的做法,我找到了更好的方法。只需创建一个新的解决方案,并将包含各个项目的文件夹的副本(在它们各自的文件夹中)添加到项目中即可。


0

你可以采用两种方式:

  1. 直接删除整个项目并在另一个文件夹中创建整个项目(这不是推荐做法)。
  2. 以下是按顺序执行且不会遗漏任何文件的步骤:

    a. 进入源代码控制资源管理器,创建一个新的文件夹或将要转移的解决方案移动到其他文件夹。

    b. 在本地加载解决方案,它会提示是否要从源代码控制重新加载 点击“是”。

    c. 一旦我们加载了解决方案,您会发现我们已经移动的项目没有被加载(因为我们移动到了其他文件夹)

    d. 现在,删除未加载的项目,然后将其作为现有项目添加。

    e. 我相信如果您已添加NuGet软件包,它们不会被加载。

    f. 转到特定项目的文件资源管理器打开.csproj文件,并尝试检查包位置、错误条件、项目引用以及除此之外指向目录的任何内容。

    g. 最简单的方法就是添加一些NuGet程序包,看看Visual Studio生成的路径是什么。

    h. 一旦我们更改了位置,它们将在引用中加载。

    i. 添加引用后,尝试构建解决方案,它会抛出一些构建错误,因为我们将项目从一个文件夹移动到了另一个文件夹。

    j. 在移动文件后添加项目引用。

    k. 现在,构建将成功。


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