如何在Visual Studio 2012中重命名解决方案、解决方案文件夹、项目文件夹、包/筛选器文件夹和vcxproj文件

22
我在我的游戏项目中遇到了问题,我无法完成上述任何操作。已经有很多答案在线上了,我查看了所有答案,但它们对我没有用或者适用情况不同。这是我的情况: This is my Solution 这就是我的解决方案,我更改了Visual Studio中的项目名称从 X-Power 改为 Neo_Elements ,这个也起作用了。但它并未影响实际物理文件夹。
.vcxproj 文件的物理文件路径和名称是 ...\Neo_Elements\WorldScrollingGame\WorldScrollingGame.vcxproj
.sln 文件的物理文件路径和名称为 ...\Neo_Elements\X-Power.sln
我想要做的事情是:
  1. 将解决方案重命名为 Neo_Elements(因此相应地更改 .sln 文件)
  2. 更改文件路径为 ...\Neo_Elements\Neo_Elements\...
  3. 将 .vcxproj 文件重命名为 Neo_Elements.vcxproj
因此,在更改后,.sln 文件路径和名称应该是 ...\Neo_Elements\Neo_Elements.sln 而 .vcxproj 文件路径和名称应该是 ...\Neo_Elements\Neo_Elements\Neo_Elements.vcxproj 解决方案和项目名称都将是 Neo_Elements
我所做的是:
  1. 在Visual Studio中通过单击解决方案名并按F2键来重命名解决方案。
结果发生了这些事情:
项目无法构建,并创建大量编译错误,如下所示:
fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
fatal error C1083: Cannot open include file: 'resource.h': No such file or directory
我甚至没有改变物理文件夹,也不知道为什么找不到文件,文件丢失的位置对我来说完全是随机的。(不仅仅是在 `\WorldScrollingGame` 下的文件,而且还有一些更深层次的文件。很多文件都受到了影响,但只有几个文件找不到)。 当我试图将解决方案名称改回X-Power时,它显示无法执行此操作。尽管不存在X-Power.sln文件,它仍然显示 "无法重命名解决方案,因为已存在指定名称的解决方案文件"。尽管如此,我仍然完全陷入困境,并不得不从备份中恢复整个解决方案(或者在Windows资源管理器中手动更改.sln文件的名称)。第一次尝试失败了。
然后,我开始尝试第二种方法,即在VS外部更改项目文件夹。
我做了什么:
我按照这个链接进行操作:关闭VS,重命名项目文件夹,编辑文本编辑器中的.sln文件,将"X-Power", "WorldScrollingGame\WorldScrollingGame.vcxproj"更改为"X-Power", "Neo_Elements\WorldScrollingGame.vcxproj" (奇怪的是,X-Power应该改为Neo_Elements,因为我在VS中编辑了项目名称,但不知何故,它没有反映这个更改,除非这不是项目名称的反映,否则根据那个链接,这绝对不应该是问题所在。但由于之前发生的情况,我不想现在弄乱解决方案名称)。
发生了什么事:
结果,我仍然收到一堆编译错误,类似于我在第一次尝试时遇到的错误,我不知道如何解决这些错误。
所以我就没再尝试第三种方式,因为我甚至不知道如何操作。
请帮忙!真的无法处理这几个问题。
编辑: 我知道可能最好的方法是开始一个新的并迁移所有文件,但我之前无论在什么情况下都无法重命名-即使是单个解决方案重命名或单个项目目录重命名。所以我想利用这个机会弄明白这实际上是如何工作的,因为它似乎已经为很多人起作用了。

2
我尝试重命名这样的解决方案时,总是遇到不好的经验 - 可能有一种方法,但如果真的有的话,它非常不直观,而且您可能已经通过手动编辑使事情变得混乱,导致无法正常工作。如果我是你,我会从轨道上摧毁它,然后从头开始创建一个新的解决方案。 [编辑:当然可以保留代码文件,并在创建正确位置的新解决方案后重新添加它们] - Vicky
3个回答

19
您看到的提示信息

"无法将解决方案重命名,因为已存在具有指定名称的解决方案文件"

可能是因为在根文件夹中存在一个与要更改名称相同的 '.sln' 文件,或者项目文件夹中仍然留有与旧解决方案相关的文件。

在解决方案的根目录中找到“.vs”文件夹。查找与您要命名解决方案相同名称的文件夹,并删除该文件夹。


7

以下是我过去做过的事情。在VS中尝试重命名解决方案并不成功。假设您想更改项目名称和解决方案名称。

  1. 关闭VS。
  2. 在进行以下步骤之前,请备份您的项目。
  3. 在Windows资源管理器中,导航到解决方案根目录。这里您将找到ProjectFile、packages和.sln文件。
  4. 通过打开Project File Folder并重命名.csproj文件来更改项目名称。
  5. 接下来,右键单击.sln文件并选择“在记事本中编辑”。查找像这样的行:Project("{FAE04EC0-301F-11D3-BF4B-xxxxxxxxx}") = "MyProject", "MyProject\MyProject.csproj", "{C1AD3829-E4BA-4BF1-85EB-672A85A4D35D}"将.csproj名称更改为步骤4中的新名称。您可能还想确保文件夹名称正确。
  6. 保存并关闭记事本。
  7. 最后,在.sln文件上右键单击并选择RENAME。选择您的名称并关闭。
  8. 现在打开VS,选择文件>打开>项目解决方案并导航到刚刚更改的.sln文件。
  9. 希望这样做就可以了。如果不行,请仔细检查更改的内容。

手动更改sln文件的名称,导致我的解决方案构建失败:出现了一些奇怪的问题,它开始在解决方案文件夹之外的另一个文件夹中缺少.h文件。不,我的路径没有硬编码。一切都是使用$(SolutionDir)、$(ProjectDir)和其他所有设置的,没有硬编码的路径。我唯一更改的是解决方案文件:从MyProgram.sln更改为MyProgram2.sln,它就无法构建了:开始缺少头文件并且说我需要C++ 17支持(已在项目中设置)。一旦我将.sln文件重命名回MyProgram.sln,就可以构建。我按照@David Sapko的答案重命名了我的.sln文件。 - KulaGGin

1
我可以给你一个建议,我认为可能会起作用。在 Visual Studio 2012 的解决方案资源管理器中,通过打开所有节点并查看其位置,找到 .vcxproj 文件,然后从那里重命名该文件。对于您的所有其他文件也进行相同的操作。在完成所有这些操作之后,您最后的任务应该是从 VS2012 内部更改解决方案名称。 希望这可以帮助到您。 欢迎任何评论或回复。

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