【发布时间】:2011-06-16 02:28:33
【问题描述】:
首先,有一点背景。
目前我们代码库中的命名空间和程序集(约 60 个程序集,数千个类)看起来像
WidgetCompany.Department.Something
我们现在已经分拆出来,因此我们正在销售驱动 WidgetCompany 的软件,所以我们想重命名命名空间和程序集
NewCompany.Something
在正常情况下,我可能会坚持使用旧名称空间,但问题是我们的客户不希望在应用程序的任何地方看到他们的竞争对手之一的名称。如果他们看到堆栈跟踪、程序集属性等,它不应该出现。这并不是要隐藏我们的同事或做任何险恶的事情,我们只需要确保人们知道我们是一个独立的实体,独立的管理,他们不需要担心数据被共享等。
现在是问题。执行这种包罗万象的重命名的最佳方法是什么? 以下内容需要更改:
- (几乎)每个类的命名空间 应用程序
- 应用程序中每个引用旧名称的
using语句 - 每个项目的文件夹结构
- 依赖更改文件夹结构的项目之间的引用
- .Sln 文件引用更改后的文件夹结构
- 任何参考 那些完全 合格的(应该是少而远 之间)
- 对这些的任何引用 xml 配置文件中的类(配置 部分等)
- 每个程序集的 AssemblyInfo.cs 文件
- 每个 .csproj 文件中的 AssemblyName
我是坚持使用 find-replace-pray 策略还是有更好的方法?
【问题讨论】:
-
签入、查找-替换、构建。或者 ReSharper,可能。
-
新的命名空间是在一个新的.dll中还是同一个dll中的命名空间被改变并重新编译了
-
resharper 有 refactor=>change 命名空间吗?我已经有一段时间没有使用它了,但我认为它没有。
-
@Shekhar_Pro:我想这定义了你如何定义一个新的 dll。这将是一个包含不同命名空间类的不同命名的 dll,但我想我会将 .csproj 文件留在原处并重命名。如果有简单的方法,我愿意创建新项目。
-
Resharper 的重构确实包含命名空间重命名选项。 jetbrains.com/resharper/documentation/help20/Refactoring/…
标签: c# .net visual-studio refactoring