如何在不同解决方案之间移动现有的Visual Studio项目?

29

如何将现有项目(包括项目自身的文件、项目所依赖的其他文件、设置(包括附加包含目录)等所有内容)从一个解决方案移动到:

  • 一个尚不存在的新解决方案中?
  • 一个现有的解决方案中?

我正在使用Visual Studio Community 2015。

我不想修改.sln文件;我希望VS能够正确地执行。.sln文件包含一些我不理解的ID。

每个项目应该保留其当前的项目名称。

我有几个要移动的项目,每个项目都有一些不是项目本身的依赖项,所以希望有一个简单的方法。

我看到了Visual Studio move project to a different folder,但它并没有回答我的问题。

在“项目”菜单中没有任何相关的选项(如果有的话,我本来认为该选项会在那里),也没有任何其他工具栏菜单或单击解决方案资源管理器中项目条目时弹出的菜单...


3
在“解决方案资源管理器”窗口中,右键单击并选择“删除”,以将项目从解决方案中移除。右键单击解决方案(顶级节点),选择“添加” > “现有项目”,将项目添加到解决方案中。 - Hans Passant
谢谢。在执行“添加现有项目”之前,我应该将项目文件从<旧sln的dir><proj name>移动到<新sln的dir><proj name>吗?还是“添加现有项目”会自动完成这个过程?(如果项目在新解决方案中,则文件位于旧解决方案的目录树中会很混乱。) - Rosie F
这完全取决于你,VS并不在意。你不喜欢的问题告诉你如何做到这一点。 - Hans Passant
@HansPassant 我想问一下,以防万一VS文件 <sln's dir><proj's dir><proj>.vcxproj* 包含了链接到<sln's dir><proj's dir>中的源文件的链接,如果我只是移动源文件,这些链接会出现问题。 - Rosie F
@HansPassant 好的。 - Rosie F
显示剩余3条评论
1个回答

29

以下是我现在的做法,感谢HansPassant的评论。

创建新解决方案

如果新解决方案不存在,请按以下步骤创建:

  1. 在Visual Studio中,选择文件 > 新建 > 项目
  2. 在新建项目窗体中,
    a. 在左上角的窗格中,选择已安装的 > 其他项目类型 > Visual Studio 解决方案
    b. 在名称:中输入新解决方案的名称 sln
    c. 在位置:中输入新解决方案目录的父目录
    d. 然后单击“确定”按钮。

将现有项目(已在一个解决方案中)移动到另一个解决方案中

我认为一个项目是解决方案的一部分(而不是项目与解决方案分开)。因此,在我的解决方案中,项目目录是包含该项目的解决方案的子目录。

  1. 剪切项目目录 proj 并将其粘贴到新解决方案目录 sln
  2. 如果未加载,请在Visual Studio中加载 sln
  3. 在“解决方案资源管理器”中,
    a. 在“解决方案 'sln'”行上点击鼠标右键
    b. 在弹出菜单中,选择“添加” > “现有项目”
    c. 导航到 sln\ proj 并选择 proj.vcxproj
    d. 单击“打开”按钮。

为什么我之前没看到这个?原因有两个。一个是我期望该功能在通过单击“解决方案资源管理器”中的project条目上的鼠标右键生成的弹出菜单中。另一个是我以前从未创建过这样的解决方案——只创建过一个项目,根据情况选择现有解决方案或“创建新解决方案”。在我看来,将“创建解决方案”的功能隐藏在“新建项目”下面不是很好的用户界面设计。一旦新解决方案存在,Hans的方法会使任务的其余部分变得容易。


5
在VS 2019中,要创建空解决方案,我需要执行以下步骤:1)点击“文件|新建|项目”;2)在搜索栏中输入“Solution”;3)会出现“空白解决方案”。 - orion elenzil
对于其他遇到移动解决方案问题的人,请确保您此时没有进行调试。"添加现有项目..."选项将不可用。 - Ian Dallas

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