依存関係
依存関係とは、ターゲットが必要とするアセンブリです。ターゲットにマージされるアセンブリ、リソースとしてターゲットに埋め込まれるアセンブリ、またはターゲットの参照を解決するためだけに使われるアセンブリがあります。
依存関係の種類
依存関係は、ソースアセンブリをターゲットに結び付けます。依存関係の種類によって、エンジンがソースアセンブリをどう扱うかが決まります。
| 種類 | 効果 |
|---|---|
| マージ | ソースアセンブリはターゲットにマージされ、ターゲットと一緒に難読化されて、単一の出力アセンブリになります。アセンブリのマージを参照してください。 |
| 埋め込み | ソースアセンブリはターゲットのリソースとして格納され、実行時に読み込まれます。アセンブリの埋め込みを参照してください。 |
| 参照 | ソースアセンブリは、ターゲットの参照を解決するためだけに使用されます。 |
依存関係では常にアセンブリの元のファイルが使われます。同じアセンブリがプロジェクトのターゲットでもある場合、依存関係はそのターゲットの設定と出力を無視し、ターゲットが実行される順序も変えません。
依存関係の接続
キャンバスでは、ターゲットの上のアンカーにそのターゲットの依存関係を接続します。ソースアセンブリの下のアンカーからターゲットの上のアンカーへドラッグするか、2 つのアンカーを順にクリックします。ソースには、依存関係のノードもほかのターゲットも指定できます。Esc を押すと、作成中の接続がキャンセルされます。
新しい依存関係の種類は Babel Desktop が選択します。ターゲットがソースアセンブリの完全な ID(名前、バージョン、カルチャ、公開キートークン)を参照している場合、新しい依存関係はマージになり、そうでない場合は参照になります。
ファイル選択ダイアログから依存関係を追加することもできます。
- ターゲットのノードのメニュー、またはツールバーの「+ 依存関係を追加」:「マージするアセンブリを追加…」、「埋め込むアセンブリを追加…」、「アセンブリ参照を追加…」、「依存関係を自動的に追加…」。
- コマンドパレット:「アセンブリ: マージ入力 を追加…」、「アセンブリ: 埋め込みアセンブリ を追加…」、「アセンブリ: 参照 を追加…」、「アセンブリ: 依存関係を自動的に追加…」は、選択したターゲットを対象に動作します。
- グリッド:「入力」タブの + アイコン、または行へのアセンブリのドロップ。ターゲットの詳細を参照してください。
マージ入力として使われるアセンブリはキャンバスに残りますが、マージ先の一部になるため、単独では難読化されません。
種類の変更
キャンバスで依存関係の線をクリックします。ポップオーバーに、ソースファイル、注記、「種類」リストが表示されます。「マージ」、「埋め込み」、「参照」のいずれかを選択して、「適用」をクリックします。



依存関係の種類の変更
依存関係のノードのメニューにも、同じ 3 つの種類があります。グリッドでは、「入力」タブの各項目の「アクション」リストで種類を変更します。
ターゲットを別のターゲットにマージする
アセンブリがすでにプロジェクトのターゲットになっている場合、そのノードのメニューの「マージ先…」と「埋め込み先…」に、ほかのターゲットが一覧表示されます。1 つを選択すると、アセンブリはそのターゲットのマージまたは埋め込みの依存関係になります。別のターゲットにマージされたターゲットはノードとして残りますが、単独では難読化されず、リネームマップも書き出しません。グリッドでは、そのターゲットはマージ先のターゲットの「入力」タブに表示され、ヘッダーの件数に「3 ターゲット · 4 件マージ済み」のように数えられます。
「難読化: メイン アセンブリへのマージを設定」は、プロジェクトのすべてのターゲットに対して、これを一度に実行します。セットアップコマンドを参照してください。
依存関係の削除
依存関係の線をクリックして Delete または Backspace を押すか、依存関係のノードのメニューで「依存関係を削除」を選択します。グリッドでは、「入力」タブの項目のゴミ箱アイコンをクリックします。