繁体   English   中英

如何更改整个项目的命名空间?

[英]how to change namespace of entire project?

我正在修改本文中的演示应用程序: http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

我需要更新所有文件以使用我的命名空间,例如现在位于此处的文件:

MySolution\MyApp\DemoApp\ViewModel\MainWindowViewModel.cs

正在使用这样的命名空间:

namespace DemoApp.ViewModel
{
/// <summary>
/// The ViewModel for the application's main window.
/// </summary>
public class MainWindowViewModel : WorkspaceViewModel

我需要将文件移至此处(删除 DemoApp 文件夹):

MySolution\MyApp\ViewModel\MainWindowViewModel.cs

并使用正确的命名空间:

namespace MyApp.ViewModel
{
....

如何在 visual studio 2010 中做到这一点?

在这里更新ok 是可能的 duplicate Change Project Namespace in Visual Studio现在我知道如何更改项目的命名空间,但是如何在文件系统上移动文件? (摆脱“DemoApp”文件夹)

转到命名空间在您的文件之一中声明的某个地方。 将光标放在要更改的命名空间部分,然后按F2 这应该重命名每个文件中的命名空间。 至少,它在我为测试这个答案而创建的小演示项目中有效!

根据您的 VS 版本,快捷方式也可能是Ctrl - RCtrl - R

我想一个简单的替换文件( Ctrl + Shift + H )就可以解决问题; 只需将namespace DemoApp替换为namespace MyApp 之后,构建解决方案并查找未知标识符的编译错误。 任何完全合格的DemoApp都需要更改为MyApp

只需右键单击解决方案,转到属性,更改“应用程序”部分下的“默认命名空间”。

在此处输入图片说明

Ctrl + Shift + H不是真正的解决方案。

您可以使用 Resharper 更改解决方案中的所有命名空间定义。 这是我之前尝试过的最好方法。

https://www.jetbrains.com/resharper/features/code_refactoring.html

您可以使用CTRL + RCTRL + R或对于复杂的命名空间更改,请使用此工具https://marketplace.visualstudio.com/items?itemName=vs-publisher-599079.FixNamespace

您可以使用 ReSharper 进行命名空间重构。 它将提供 30 天的免费试用。 它将根据文件夹结构更改命名空间。

脚步:

  1. 右键单击要重构的项目/文件夹/文件。

  2. 如果您已经安装了 ReSharper,那么您将获得一个选项 Refactor->Adjust Namespaces.... 所以点击这个。

在此处输入图片说明

它将自动更改所有选定文件的名称空间。

我使用名为 BareGrep 的工具检查了文件夹结构,以确保我获得了所有命名空间更改。 它是一个免费工具,可让您搜索指定文件结构中的文件。

我尝试了一切,但我找到了一个真正有效的解决方案。 它使用新的命名空间名称等创建独立的解决方案。

  1. 在主窗体中找到命名空间名称 -> 右键单击​​ -> 重构 -> 重命名并选择一个新名称。 选中所有框并单击“确定”。

  2. 在解决方案资源管理器中,将解决方案名称重命名为新名称。

  3. 在解决方案资源管理器中,将项目名称重命名为新名称。

  4. 关闭 VS 并将解决方案文件夹中的文件夹(例如总指挥官)重命名为新名称。

  5. 在 .sln 文件中,将旧名称重命名为新名称。

  6. 删除旧的 .suo 文件(隐藏)

  7. 启动VS并加载项目

  8. 项目 -> 属性 -> 将程序集名称和默认命名空间更改为新名称。

我知道这已经很晚了,但是对于从现在开始想要这样做的任何人,我希望这个答案证明会有所帮助。 如果您安装了CodeRush Express免费版,并且是“必备”),它提供了一种更改项目范围命名空间的简单方法。 您只需将光标放在要更改的命名空间上,它就会在namespace字符串下方显示一个smart tag (一个小蓝框)。 您可以单击该框或按Ctrl +键以查看Rename选项。 选择它,然后为项目范围的命名空间输入新名称,单击Apply并在新对话框中选择您希望它更改的项目位置,然后OK 完毕! :-)

当我想更改命名空间和解决方案名称时,我执行了以下操作:
1)通过选择命名空间并重命名它来更改命名空间,我对解决方案名称也做了同样的事情
2)单击灯泡并重命名旧命名空间的所有实例
3)从解决方案中删除所有项目
4)关闭视觉工作室
5)重命名Windows资源管理器中的所有项目
6)打开visual studio并再次添加所有项目
7) 在所有项目的属性中重命名命名空间
8) 删除 bin 文件夹(来自所有项目)
9)再次构建项目

这对我来说没有任何问题,而且我的项目也有源代码控制。 将这些更改推送到遥控器后一切正常。

在 asp.net 中要做的更多,在另一个命名空间下完全运行。

  • 复制您的源文件夹并将其重命名为您的新项目名称。
  • 打开它并按 Ctrl + H 全部替换,并确保包含所有替换所有内容
  • 在您的项目名称上按 F2 并将其重命名为您的新项目名称
  • 转到您的项目属性并进行调整,因为一切都已消失,您需要创建一个新的调试配置文件来创建
  • 所有依赖项现在都有一个感叹号 - 重新启动 Visual Studio
  • 清理您的解决方案并运行它,它应该可以工作:)

重命名项目时,这是一个简单的过程

  • 重命名您的项目
  • 编辑项目属性以具有新的默认命名空间值
  • 查找/替换解决方案中的所有“命名空间 OLD”和“使用 OLD”语句
  • 在文本编辑器中手动编辑 .sln 文件,并将目录结构中的旧项目名称替换为新项目名称。
  • VS提示时重新加载解决方案

在 VS 2019 中,您可以使用以下步骤重命名命名空间

  1. 将光标放在命名空间名称中。
  2. 按 Ctrl+。 触发快速操作和重构菜单。
  3. 选择将命名空间更改为 。 有关更多信息,请参阅Microsoft 文档

任何在VS Code上尝试的人,使用典型的Rename选项,这将更新所有命名空间的使用,如果项目名称发生更改,您将不得不进入每个.csproj并替换新的项目名称。

不要忘记运行dotnet restore ,然后它才会停止显示构建问题。

Visual Studio 2022 有一个新功能同步命名空间。

您需要在解决方案资源管理器中右键单击项目或解决方案。

在此处输入图像描述

如果您有 C# 个文件已在文件夹之间移动并且命名空间不同步,则此功能应该派上用场,可以根据文件为每个文件设置正确的命名空间。 格式。

当您执行遗留代码库的迁移时,这将特别有用。

参考资料https://nitinmanju.medium.com/de-clutter-namespaces-using-c-10-60822af79336

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM