2

動作するためにODBCコネクタをコンピュータにインストールする必要があるアプリケーションを作成しました。私のアプリケーションはmysqlデータベースに接続する必要があるため、動作するのに必要なdllファイル(MySql.Data.dll)は1つだけです。

このdllをアプリケーションと同じ場所に置くと、問題なく動作します。このdllをマージして、最後に実行可能ファイルを1つだけにするようにしますか?

この依存DLLを実行可能ファイルとマージするにはどうすればよいですか?

4

2 に答える 2

2

それはできません。すべてのアセンブリがどこかから参照されます...

  • 次のような.NETFrameworkパスから:

System.Net.dll

すべての.NETアプリを実行するには.NETFrameworkアセンブリが必要です。そのため、アプリを実行するユーザーには.NETFrameworkがインストールされている必要があります。したがって、アプリはこのアセンブリの場所を認識しており、たとえば、System.Net.dll実行を成功させるためにアセンブリをアプリの同じパスに配置する必要はありません。

  • または、アプリのように外部パスから。

アプリは、実行する.NET Frameworkアセンブリの場所を知っていますが、待ってください。実行するには追加のdllも必要なのでMySql.Data.dll、アプリをコンパイルするときに同じパスを取得するのはそのためです。

考えられる解決策:

1.実行可能ファイルを1つだけ作成する場合は、Spoon Studioを使用してみてください(完全にクラックされたバージョンを見つけるのは難しく、購入するには費用がかかります)。これにより、必要なアセンブリやすべての.NET Frameworkなどのアセンブリを埋め込むことができるため、アプリを実行するユーザーコンピューターでの.NETFrameworkのインストールや必要なアセンブリにアプリが依存しなくなります。

2.を使用してみてください。ILMergeただし、コードが要件に適合しているかどうかを確認するには、以下のリンクをお読みください。

方法と重要な情報:

http://www.codeproject.com/Articles/9364/Merging-NET-assemblies-using-ILMerge

http://www.blackwasp.co.uk/ILMerge.aspx

于 2012-07-23T00:20:12.260 に答える
1

純粋な.NETモジュールの場合は、ilmergeユーティリティを試すことができます。

于 2012-07-23T00:31:25.843 に答える