0

基本上,我开发了一个小型库,其中包含一些我在所有项目中使用的常见功能。由于某些政治原因,我无法为该库选择通用名称(包括命名空间和程序集名称)。通常,它必须包含企业的名称,命名空间如下所示:Enterprise.ProjectName.XXX.YYY.

目前,我正在复制我的库,然后我正在使用 Visual Studio 手动重命名命名空间,最后我正在重新编译整个内容。所以我的问题如下:是否可以创建一个将程序集作为输入的小程序,将所有命名空间从MyLibrary.XXX.YYYtoEnterprise.ProjectName.XXX.YYY以及程序集名称重命名?

要遵循哪些步骤?

[编辑]

自动生成程序集似乎需要做很多工作。我将像目前一样使用 resharper 和/或 CTRL+ALT+F。感谢您的答案...

4

2 回答 2

3

您可以使用 Mono 的Cecil项目来反汇编程序集,检查每种类型,使用新命名空间重命名或重新创建类型,然后生成结果程序集。

话虽如此,使用像 Resharper 这样的工具可能更简单,它允许您在代码库中正确重命名命名空间。

于 2013-06-05T17:17:15.653 回答
1

一些选项:

  1. 如果要将库的整个源代码复制到新项目中,可以使用 Resharper 之类的重构工具来“调整命名空间”。这是一个非常快速和安全的重构。

  2. 如果您只需要避免运送内部命名的程序集,您可以在构建后步骤中使用ILMerge来“隐藏”内部程序集。如果这只是二进制输出目录中最终程序集名称的感知问题,这是可行的。

  3. 通过将您的内部库描述为与任何其他第三方依赖项没有区别来处理政治层面的问题。那么命名就不再是问题了。如果您将此库的源代码发送给多个客户,这可能会解决其他问题,因为它阐明了您没有将“共享”代码的完全所有权授予每个客户。否则,他们可能会争辩说,不允许您在其他客户的项目中使用该“共享”代码,因为它显然归他们所有,并且在命名空间中有他们的企业名称。

于 2013-06-05T17:23:43.333 回答