我当前重命名项目文件夹的解决方案是:

从解决方案中删除项目。在Visual Studio外部重命名文件夹。将项目重新添加到解决方案中。

有更好的方法吗?


当前回答

这在Visual Studio 2019中对我来说效果很好。

在Visual Studio中重命名解决方案和项目正常单击文件名。在Visual Studio中重命名命名空间。在主项目页面上重命名所需的元素(发布位置、应用程序、默认名称空间等)。正如正确指出的那样,这对文件夹没有任何作用,但它确实重命名了项目文件,并在VisualStudio中将所有内容联系在一起。关闭Visual Studio。重命名文件夹。打开Visual Studio并回答“否”以从源代码管理获取项目。删除卸载的项目引用。使用“从解决方案添加现有项目”将每个项目添加回。这将一切联系在一起,并为我构建了项目。

请评论并纠正以上任何不起作用的内容。

其他回答

目前没有。实际上,您可以单击损坏的项目节点,在财产窗格中查找属性“Path”,单击小浏览图标,然后选择新路径。

Voilà:)

还有另一种方法,使用*.sol,*csproj文件。

打开解决方案文件。搜索要更改的*.csproj。它将如下(相对于*.sol文件):项目(“{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}”)=“Shani.Commands.Impl”,“Shani.Orders.Impl\Shani.Commands.Impl.csproj”,“{747CFA4B-FC83-419A-858E-5E2DE2B948E}”只需将第一部分更改为新的目录,例如:Impl\Shani.Commands.Impl\Sani.Commands.Impl.cspoj当然,不要忘记将整个项目移动到该目录。

更简单的解决方案如下:

右键单击项目并将其重命名。(可选)打开项目的属性设置并修改程序集名称(以及可选的默认命名空间)以使用新的项目名称。(可选)在源文件中选择命名空间名称,右键单击并选择Refactor/Rename,以将命名空间全局重命名为新项目名称。(可选)打开AssemblyInfo.cs文件并更改程序集名称以匹配。保存并关闭解决方案。使用Windows资源管理器,将项目文件夹重命名为新名称。在文本编辑器中打开SLN文件,找到对项目路径的一个引用,并将其更改为使用新的文件夹名称。

需要四个步骤,但建议七个步骤。在一天结束时,尽管项目已完全重命名。从技术上讲,项目的文件夹名称不必与项目本身匹配,因此即使是该步骤也是可选的,但如果它们不匹配,可能会令人困惑。程序集和命名空间名称也是如此。

我使用Visual Studio 2013和TFS 2013。

我是这样做的:

打开Visual Studio,而不打开解决方案本身,并使用源代码管理资源管理器查找和重命名项目的文件夹双击源代码管理资源管理器中的解决方案文件以打开解决方案。您会收到一个问题:“项目最近已添加到此解决方案中。是否要从源代码管理中获取它们?”,然后选择“是”。现在文件夹和项目结构都在那里,但现在是文件,所以现在您可以从源代码管理获得最新版本尝试构建并提交更改。

我经常遇到在VisualStudio中重命名项目并编辑文件夹名、项目名和.sln文件以实现这一点的问题。我刚刚写了一个VBScript脚本来完成这一切。您必须小心选择要替换的字符串。

您只需将.vbs文件与解决方案的.sln文件放在同一目录中即可。

' Script parameters'
Solution = "Rename_Visual_Studio_Project" '.sln'
Project = "Rename_Visual_Studio_Project" '.csproj'
NewProject = "SUCCESS"

Const ForReading = 1
Const ForWriting = 2

Set objFso = CreateObject("Scripting.FileSystemObject")
scriptDirr = objFso.GetParentFolderName(wscript.ScriptFullName)

' Rename the all project references in the .sln file'
Set objFile = objFso.OpenTextFile(scriptDirr + "\" + Solution + ".sln", ForReading)
fileText = objFile.ReadAll
newFileText = Replace(fileText, Project, NewProject)
Set objFile = objFSO.OpenTextFile(scriptDirr + "\" + Solution + ".sln", ForWriting)
objFile.WriteLine(newFileText)
objFile.Close

' Rename the .csproj file'
objFso.MoveFile scriptDirr + "\" + Project + "\" + Project + ".csproj", scriptDirr + "\" + Project + "\" + NewProject + ".csproj"

' Rename the folder of the .csproj file'
objFso.MoveFolder scriptDirr + "\" + Project, scriptDirr + "\" + NewProject