0

Visual Studio 2013 で OpenCvSharp を使用しています。Nuget を介してインストールしましたが、正常に動作しています。

しかし、アプリケーションをデプロイすると、128M の DLL ディレクトリがあります。実際、x86 の場合は 128M、64 の場合は 128M です。基本的に HighGui と Core の関数を使用しています。DLL を削除すると、ロード時に OpenCvSharp が例外をスローします。

私は成功せずにOpenCvSharpを再コンパイルしようとしました(これは別の質問です)、OpenCVを再コンパイルしてより小さなDLLを取得することさえ試みました。

必要な DLL のみをロードし、どれを削除できるかを指摘する方法はありますか?

4

1 に答える 1

3

展開のサイズはかなり大きいように聞こえます... Nuget パッケージ OpenCvSharp-AnyCPU 2.4.10 でテスト プロジェクトを作成すると、次のようになります。

  • net40 アセンブリ用に 1.22MB
  • x64 dll 用に 32MB
  • x86 dll 用に 29MB

OpenCvSharp はオンデマンドでネイティブ dll をロードするため (つまり、C# コードがネイティブ コードを必要とする場合) 、コードで使用されていない dll を削除できますが、ソースを確認するか、試行錯誤してこれを見つける必要があります。

デフォルトでは、C# アプリはターゲットAny CPUをビルドします。つまり、両方の dll セットが必要ですがPlatform target: x86、ビルド プロパティを設定して、x64 dll を展開しないようにすることもできます。

于 2015-05-19T11:03:07.100 に答える