質問

次のような設定が必要です:

+- /ApplicationFolder
  -- App.exe
  -- Core.dll
  -- AnotherShared.dll
  +- /PluginsFolder
    -- plugin1.dll
    -- plugin2.dll

しかし、plugin1.dllはアプリケーションをコンパイルするときにCore.dllとShared.dllを参照するため、" Copy.dll"のコピーをドロップします。および「Shared.dll」プラグインフォルダーも削除しますが、削除しても機能しません。

この問題を解決するにはどうすればよいですか

役に立ちましたか?

解決

AppDomainを作成するときに、アセンブリをロードするためのパスを定義できます。 AppDomainSetup.PrivateBinPath からAppDomain.Createドメインに渡します。

プラグインではAppDomainを使用することをお勧めします(異なるCASとアンロードを許可します)。

VS / msbuildが参照アセンブリを出力ディレクトリにコピーしないようにするには、「ローカルにコピー」を変更します。参照のプロパティでfalseになります。

他のヒント

プラグインプロジェクトが独自のフォルダー(デフォルト)にコンパイルされるようにMEFアプリケーションをセットアップし、ビルド後コマンドを使用して特定のファイルを出力拡張フォルダーにコピーします。

もう1つの方法は、プロジェクトを適切な出力フォルダーに直接ビルドし、他のポスターが言ったように、「プロパティ」を開くことです。プラグインプロジェクトの関連する参照ごとにパネルを作成し、「ローカルにコピー」を設定します。 falseに。

scroll top