私は、sharpdevelop 3.2 でネット コンパクト フレームワーク プロジェクトを開発しています。それはうまく機能しますが、実行時にexeを含むフォルダー内に、私が使用するfirebirdネットプロバイダーやその他のアセンブリなどのdllが必要です。このすべてのdllをexeに埋め込む方法、すべてを1つのexeファイルに埋め込んで、exeを実行するフォルダに個別にコピーして貼り付ける必要がないようにするにはどうすればよいですか?
質問する
1694 次
1 に答える
0
このような場合に私が最もよく使用する方法は、アセンブリをリソースとして EXE に追加し、AssemblyResolve
イベントのハンドラを追加してアセンブリをリソースからメモリにアンパックし、そこからロードすることです。
使用の良いところは、通常の方法でアセンブリが見つからAssemblyResolve
なくなるまで呼び出されないため、必要に応じて、リソースにバインドされたアセンブリをディスク上の実際のアセンブリでオーバーライドできることです。AssemblyResolve
常にリソースをロードするように強制したい場合は、AssemblyLoad
代わりにフックしてください。
リソースを圧縮して肥大化を減らし、デプロイされた合計バイト数を節約することもできます。
于 2014-06-21T10:36:41.040 に答える