1

複数のアセンブリのセットがあります(1つのアセンブリがAPIとして使用され、他のアセンブリに依存します)。すべてのアセンブリを1つの単一のアセンブリにマージしたいのですが、APIを除くすべてのアセンブリが外部から見えないようにします。

次に、このアセンブリをXenocodeで難読化します。私が見てきたことから、Xenocodeでアセンブリを内部化することは不可能です。

MicrosoftのILMergeを見たことがありますが、それが私が望むことを実行できるかどうかを理解できませんでした。 http://research.microsoft.com/~mbarnett/ILMerge.aspx

4

4 に答える 4

2

私はマイクロソフトのILMergeを使用して、DLLを単一のアセンブルされたライブラリに内部化しました。NuGenUnifyと呼ばれるILMergeを使用するための便利なGUIがあります。ここで見つけることができます。

于 2008-10-06T15:21:30.680 に答える
1

MSDNInternalsVisibleToの属性を確認することをお勧めします。

すべてのアセンブリ (API アセンブリを除く) のすべてを のinternal代わりとしてマークpublicし、それらを API アセンブリだけに再表示できます。

これが完了したら、ILMerge を使用すると、API クラスのみが表示された単一のアセンブリが得られます。

于 2008-10-07T11:10:54.617 に答える
1

Xenocode がアセンブリを 1 つにマージできることは知っていますが、他の非プライマリ アセンブリを内部化するかどうかはわかりません。

ILMerge で、プライマリ アセンブリを除くすべてのアセンブリを "内部化" する /internalize スイッチを見つけました。かなり便利!

于 2008-08-26T19:27:04.167 に答える
1

ILMergeにはいくつかの問題がありますが、最適化 + マージ + 難読化を追加すると、ほとんどメリットがない非常に複雑な状況が発生する可能性が高いと思います。

アセンブリを 1 つだけにして、API だけを公開してみませんか?

それらを常に単一のアセンブリとして配布している場合は、そのようにコンパイルしない理由はありません。コンパイラの最適化からより多くの利点が得られ、コンパイルも高速になります。

于 2008-10-07T13:13:00.567 に答える