我当前重命名项目文件夹的解决方案是:
从解决方案中删除项目。在Visual Studio外部重命名文件夹。将项目重新添加到解决方案中。
有更好的方法吗?
我当前重命名项目文件夹的解决方案是:
从解决方案中删除项目。在Visual Studio外部重命名文件夹。将项目重新添加到解决方案中。
有更好的方法吗?
当前回答
这在Visual Studio 2015中很简单(可能适用于旧版本)
在解决方案资源管理器中,右键单击主解决方案→ 重命名在解决方案资源管理器中,右键单击项目(在解决方案下)→ 重命名在解决方案资源管理器中,双击或右键单击财产→ 转到应用程序选项卡,重命名程序集名称和默认名称空间以匹配。如果还希望重命名命名空间,请打开一个类文件。右键单击名称空间→ 重命名。。。。这将在整个项目中搜索并替换对命名空间的所有引用。关闭项目→ 重命名项目文件夹。在记事本中编辑.sln文件,并将路径更改为csproj,即fu\bar.csproj→ bar\bar.csproj。
其他回答
当必须创建新项目,并且您希望使用与项目名称不同的项目文件夹名称时,也会出现类似的问题。
创建新项目时,它将存储在
./path/to/pro/ject/YourProject/YourProject.**proj
假设您希望将其直接保存在ject文件夹中:
./path/to/pro/ject/YourProject.**proj
我的解决方法是以路径的最后一部分作为名称创建项目,这样就不会创建额外的目录:
./path/to/pro/ject/ject.**proj
当您现在从Visual Studio中重命名项目时,无需离开Visual Studio即可实现目标:
./path/to/pro/ject/YourProject.**proj
这种方法的缺点是,还必须调整默认名称空间和Output二进制文件的名称,并且必须更新项目模板中包含的所有文件中的名称空间。
我执行了以下操作:
<创建整个文件夹的备份>
在Visual Studio 2013中重命名项目(可选/不需要)。将项目导出为模板。关闭解决方案。重新打开解决方案从保存的模板创建项目并使用您喜欢的名称。从解决方案资源管理器中删除上一个项目。
此时,我试图编译新的解决方案,为此,我必须手动将一些资源和标题从旧项目文件夹复制到新项目文件夹。这样做,直到编译时没有错误。现在,这个新项目将“.exe”文件保存到上一个文件夹中*
所以->
转到Windows资源管理器,手动将解决方案文件从旧项目文件夹复制到新项目文件夹。关闭解决方案,然后从新项目中打开解决方案。如果需要,将配置更改回(x64)。从解决方案的文件夹中删除具有旧名称的项目文件夹。
对于那些使用Visual Studio+Git并希望保留文件历史记录(同时重命名项目和/或解决方案)的用户:
关闭Visual Studio在.gitignore文件中,使用这些路径的重命名版本复制要重命名的项目的所有忽略路径。使用Git move命令如下:git mv<old_folder_name><new_folder_name>有关其他选项,请参阅文档:https://git-scm.com/docs/git-mv在.sln文件中:找到定义项目的行并更改路径中的文件夹名称。该行应类似于:项目(“{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}”)=“<项目名称>”,“<项目路径>\<项目>.csproj”打开Visual Studio,右键单击项目→ 重命名然后,重命名名称空间。我读到ReSharper对此有一些选择。但简单的查找/替换为我完成了任务。删除旧的.gitignore路径。
其他答案提供了很多关于如何做的细节。不过,这里有一个快捷方式,可以为您节省一些工作:
重命名项目文件夹重命名.csproj文件大规模替换解决方案中所有文件中的项目名称(我使用GrepWin,它有一个方便的GUI和预览)
这样,您就不必在Visual Studio GUI中烦琐地工作了。您也可以通过这种方式修复名称空间。您可以使用源代码控制来验证更改(例如,打开TortoiseGitCommit并查看更改)。
还有另一种方法,使用*.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当然,不要忘记将整个项目移动到该目录。