.NETのランタイムは当初から、アセンブリの集合を基にしたパッキングを正式に備えていた。これは、管理の煩雑なスクリプトファイルやクラスファイルの集まりよりは遥かに便利だ。しかし、静的にリンクした実行可能ファイルやJARファイルと同じほど使いやすくはない。Vasian Cepa氏の .NETZを使えば、開発者は.NETのアセンブリを圧縮し単一の実行可能ファイルにパックすることができる。
デフォルトの設定では.NETZは、#ZipLibライブラリか.NET 2.0のIO.Compression.DeflateStreamクラスを使用して圧縮できる。必要なら新しい圧縮用プロバイダを作ることもできる。理論上は新しい圧縮用プロバイダに暗号化機能を搭載することもできるが、規定ではそのようなプロバイダは含まれていない。
.NETZには、制限事項もある。.NET 2.0のプロジェクトのローカライズリソースDLLはサポートされていない。.NET 1.0 や 1.1と違って、.NET 2.0のバージョンでは、動的にアセンブリを解凍するために必要なAssemblyResolveイベントとResourceResolveイベントが発生しない。しかし、これには回避策がある。
また、ネイティブなDLLやマネージドC++で作られたDLLはサポートしていない。 後者について言えば、サポートできないのは“マネージドC++ のコンパイラはPEファイルと中間言語のメタデータを最適化しているが、その最適化の方法が.NETの一般的なアセンブリ読み込みのメソッドでは解釈できないからだ。”