在主库中有一个名称空间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
?
答案 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的用途,以及为什么它依赖于混淆。