如何更改现有解决方案文件(sln)的文件夹?
目前它位于我的一个项目文件夹内;如果我将解决方案文件剪切并粘贴到根文件夹中,它将无法加载任何项目。
如何更改现有解决方案文件(sln)的文件夹?
目前它位于我的一个项目文件夹内;如果我将解决方案文件剪切并粘贴到根文件夹中,它将无法加载任何项目。
在Visual Studio中打开解决方案资源管理器并选择解决方案。
点击文件 > 另存为 MyProject.sln ...
并选择新的位置。
解决方案文件只是一个文本文件。您应该能够将其移动,然后编辑它以确保文件中引用的任何相对路径都是正确的。
我还可以右键单击解决方案资源管理器中的解决方案文件,然后使用“另存为”将其保存在不同位置。但这种方法似乎并不总是有效。
打开一个空白的解决方案,将其保存到您想要移动的位置。然后添加“现有项目”,选择Old.sln文件以添加旧解决方案文件下的所有项目。
我刚刚需要处理一些遗留项目,所以认为值得记录一下...
在从VS 2005升级后,我注意到解决方案文件与项目文件处于同一级别。 我们的标准是将解决方案文件放在上面一个级别。
在“记事本”中打开解决方案文件,我看到如下内容:
对每个项目路径添加所需的相对路径,并将其保存在正确的位置中:
在我的情况下向上调整一个级别'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
这种情况下,创建新的解决方案并添加项目是繁琐的,需要更多时间。
你可以编辑解决方案文件以正确加载项目。
1. 在记事本或任何文本编辑器中打开解决方案文件。 2. 更新下划线和加粗的路径。
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BloombergPaydownService", "BloombergPaydownService\BloombergPaydownService.csproj", "{17DDDD3E-CD39-48B4-BE3F-71E550FCBBFC}"
编辑解决方案文件是一种危险的做法,我找到了更好的方法。只需创建一个新的解决方案,并将包含各个项目的文件夹的副本(在它们各自的文件夹中)添加到项目中即可。
你可以采用两种方式:
以下是按顺序执行且不会遗漏任何文件的步骤:
a. 进入源代码控制资源管理器,创建一个新的文件夹或将要转移的解决方案移动到其他文件夹。
b. 在本地加载解决方案,它会提示是否要从源代码控制重新加载 点击“是”。
c. 一旦我们加载了解决方案,您会发现我们已经移动的项目没有被加载(因为我们移动到了其他文件夹)
d. 现在,删除未加载的项目,然后将其作为现有项目添加。
e. 我相信如果您已添加NuGet软件包,它们不会被加载。
f. 转到特定项目的文件资源管理器打开.csproj文件,并尝试检查包位置、错误条件、项目引用以及除此之外指向目录的任何内容。
g. 最简单的方法就是添加一些NuGet程序包,看看Visual Studio生成的路径是什么。
h. 一旦我们更改了位置,它们将在引用中加载。
i. 添加引用后,尝试构建解决方案,它会抛出一些构建错误,因为我们将项目从一个文件夹移动到了另一个文件夹。
j. 在移动文件后添加项目引用。
k. 现在,构建将成功。