从合并库重命名类型

时间:2018-01-12 22:14:16

标签: obfuscation eazfuscator

在主库中有一个名称空间Main.TargetNamespace。在合并库中,有一个公共类型Merged.SourceNamespace.Type

我需要将Merged.SourceNamespace.Type类型移至Main.TargetNamespace public

我做了

[assembly: Obfuscation(Feature = "ilmerge custom parameters: /internalize:exclude.file", Exclude = false)]
[assembly: Obfuscation(Feature = "Apply to type Merged.SourceNamespace.Type: type renaming pattern Main.TargetNamespace.Type", Exclude = false)]

但是只禁用了内部化(即第一行有效):类型Merged.SourceNamespace.Type是公共的,并且在模糊汇编中可用。

如何将合并库中的类型Merged.SourceNamespace.Type设置为public并将其移动到指定的命名空间Main.TargetNamespace.Type

1 个答案:

答案 0 :(得分:1)

为了保持MyTestCommand公开,应将其排除在内化之外:

Merged.SourceNamespace.Type

namespace Merged.SourceNamespace { [Obfuscation(Feature = "internalization", Exclude = true)] public class Type { // ... } } 程序集的相应混淆设置应如下所示:

Main

P.S。一般建议。虽然给定的配方允许实现目标,但我强烈建议避免在生产场景中使用它。原因如下:程序集的公共API应该由源代码专门定义。不要依赖Eazfuscator.NET等工具为您进行API转换。否则事情会很快变得多毛。例如,您的同事或未来您可能很难尝试弄清楚该API的用途,以及为什么它依赖于混淆。