0

私は、sharpdevelop 3.2 でネット コンパクト フレームワーク プロジェクトを開発しています。それはうまく機能しますが、実行時にexeを含むフォルダー内に、私が使用するfirebirdネットプロバイダーやその他のアセンブリなどのdllが必要です。このすべてのdllをexeに埋め込む方法、すべてを1つのexeファイルに埋め込んで、exeを実行するフォルダに個別にコピーして貼り付ける必要がないようにするにはどうすればよいですか?

4

1 に答える 1

0

このような場合に私が最もよく使用する方法は、アセンブリをリソースとして EXE に追加し、AssemblyResolveイベントのハンドラを追加してアセンブリをリソースからメモリにアンパックし、そこからロードすることです。

使用の良いところは、通常の方法でアセンブリが見つからAssemblyResolveなくなるまで呼び出されないため、必要に応じて、リソースにバインドされたアセンブリをディスク上の実際のアセンブリでオーバーライドできることです。AssemblyResolve常にリソースをロードするように強制したい場合は、AssemblyLoad代わりにフックしてください。

リソースを圧縮して肥大化を減らし、デプロイされた合計バイト数を節約することもできます。

于 2014-06-21T10:36:41.040 に答える