首先,介绍一下背景。
目前我们代码库中的 namespace 和程序集(约 60 个程序集,数千个类)看起来像
WidgetCompany.Department.Something
我们现在已经分拆出来,我们正在销售驱动 WidgetCompany 的软件,所以我们想重命名命名空间和程序集
NewCompany.Something
在正常情况下,我可能会坚持使用旧 namespace ,但问题是我们的客户不希望在应用程序的任何位置看到他们竞争对手之一的名称。如果他们看到堆栈跟踪、程序集属性等,则不应显示。这并不是要隐藏我们的同事或做任何邪恶的事情,我们只需要确保人们知道我们是一个独立的实体,独立的管理,他们不需要担心数据被共享等。
现在是问题。执行这种类型的所有包含重命名的最佳方法是什么? 以下内容需要更改:
- (几乎)每个类的命名空间 应用
- 应用程序中引用旧名称的每个
using
语句 - 每个项目的文件夹结构
- 依赖更改文件夹结构的项目之间的引用
- .Sln 文件引用更改后的文件夹结构
- 任何对 那些完全是 合格(应少而远 之间)
- 对那些的任何引用 xml配置文件中的类(config 部分等)
- 每个程序集的 AssemblyInfo.cs 文件
- 每个 .csproj 文件中的 AssemblyName
我是坚持使用查找-替换-祈祷策略还是有更好的策略?
最佳答案
右键单击您当前的 namespace 并选择 Refactor -> Rename 并在稍后出现的弹出窗口中更改名称。输入您的新名称,然后单击确定。
如果您的命名空间有多个深度,则 Visual Studio 不会让您键入一个点。但是,如果您复制并粘贴一个点,尽管有警告,它仍能正常工作。
要完全更改为新名称,您可能需要手动进行其他更改。您可以通过执行项目搜索 (ctrl+shift+f) 在项目、解决方案或其他支持文件中从单独的文本编辑器(如 VS Code)中查找对名称的其他引用来找到位置。最后,可能还需要手动更改文件夹。
关于c# - 在大型 C# 应用程序上执行批量命名空间重命名的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4809197/