此设置告知 Dotfuscator:某个特定的输入程序集将作为库进行处理。在使用 Dotfuscator 进行模糊处理时,库被定义为本次运行中未被指定为输入的其他组件将会引用的程序集,无论设置的自定义排除规则如何,这都会对重命名和精简造成影响。
在 Dotfuscator Community Edition 中,库选项应用于所有输入程序集。如有任何一个输入程序集标记为库,则所有输入程序集都视为库。
下面是使用库选项时的规则:
- 不对公共类和嵌套公共类的名称进行重命名。如果这些类的成员(字段和方法)具有公共、族或 famorassem 访问权限,则也不对它们进行重命名。
- 此外,无论访问说明符是什么,都不重命名虚方法。这将允许库的客户端重写私有虚方法(如果需要重写),这在 .NET 结构中是允许的行为。
- 除了以上规则隐含的排除条件以外,还将应用任何用户指定的自定义重命名排除条件。
- 总是保留属性和事件元数据。
如果您没有为某个程序集设置库选项,则等于告诉 Dotfuscator 您的输入程序集是一个独立的应用程序,或者它将只由其他输入程序集引用。在这种情况下,模糊处理将显得更加积极:
- 除了对应用程序外部的类(即未包括在运行中的程序集中的类)进行重写的方法之外,所有内容都被重命名。
- 属性和事件元数据将被移除,因为运行应用程序时不需要该元数据(它是供库代码的“使用者”使用的)。
- 通常,也应用由用户指定的自定义重命名排除条件。
若要为输入程序集指定库模式,请将 <option> 元素添加到其 <inputassembly> 元素。
<inputassembly> <option>library</option> <file dir="c:\temp" name="myproj.dll"/> </inputassembly>
© 2002-2007 PreEmptive Solutions. 保留所有权利。