アセンブリ単位のライブラリ モード

ms227298.pro(ja-jp,VS.90).jpg この設定は、特定の入力アセンブリをライブラリの構成要素とすることを Dotfuscator に指示します。(Dotfuscator にとってライブラリは、Dotfuscator の入力に含まれてない他のコンポーネントから参照されるアセンブリです。したがって、カスタムの対象除外を設定しているかどうかにかかわらず、名前の変更や不要コードの除去について注意すべき点があります。)

ms227298.ce(ja-jp,VS.90).jpg Dotfuscator Community Edition では、すべての入力アセンブリに library オプションが適用されます。いずれかの入力アセンブリがライブラリとして指定されている場合、すべての入力アセンブリがライブラリであるものとして処理されます。

library オプションを使用する際の規則を次に示します。

パブリック クラスの名前と、入れ子になったパブリック クラスの名前は変更されません。これらのクラスのメンバ (フィールドおよびメソッド) のアクセス属性が public、family、famorassem である場合も、名前は変更されません。

  1. さらに、アクセス指定子にかかわらず、仮想メソッドの名前も変更されません。これによって、ライブラリのクライアント側ではプライベートな仮想メソッドを必要に応じてオーバーライドできるようになります (.NET アーキテクチャでは、このような動作が許されています)。
  2. 上記の規則によって暗黙に適用される対象除外とともに、名前の変更に関するユーザー指定のカスタム対象除外が適用されます。
  3. プロパティとイベントのメタデータは、常に維持されます。

アセンブリに library オプションを指定しなかった場合、入力アセンブリはスタンドアロン アプリケーションとして、または他の入力アセンブリからのみ参照されるものとして処理されます。この場合、次のように難読化の度合いがより高くなります。

アプリケーションの外部のクラス (つまり、Dotfuscator の処理に含まれないアセンブリのクラス) をオーバーライドするメソッドを除いて、すべての名前が変更されます。

  1. プロパティとイベントのメタデータは、アプリケーションの実行に不要なため取り除かれます (これらのメタデータは、ライブラリ コードの "利用者" 向けのものです)。
  2. 通常どおり、名前の変更に関するユーザー指定のカスタム対象除外も適用されます。

入力アセンブリにライブラリ モードを指定するには、その入力アセンブリの <inputassembly> 要素に <option> 要素を追加します。

      <inputassembly>
        <option>library</option>
        <file dir="c:\temp" name="myproj.dll"/>
      </inputassembly>

© 2002-2007 PreEmptive Solutions. All rights reserved.