Pergunta

Eu quero uma configuração como esta:

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

Mas porque as referências plugin1.dll para Core.dll e Shared.dll quando eu compilar a aplicação deixa cair uma cópia de "Copy.dll" e "Shared.dll" para plugins pasta como bem e se eu remover a eles que doesn 't trabalho mais.

Como posso resolver este problema?

Foi útil?

Solução

Quando você cria um AppDomain você pode definir um caminho para os conjuntos de carregamento. Set AppDomainSetup.PrivateBinPath e passar para o domínio AppDomain.Create.

Usando um AppDomain é uma boa idéia para plugins (permite diferentes CAS e descarga).

Para evitar VS / msbuild copiar assemblies referenciados para o diretório de saída, altere "Copy Local" para falsa nas propriedades da referência.

Outras dicas

aplicação

Meu MEF é configurado para esse plugin projetos compilar a sua própria pasta (como o é o padrão), então eu uso um comando pós-compilação para copiar arquivos específicos para a pasta extensões de saída.

A outra maneira é ter a compilação de projeto diretamente para a pasta de saída e, como o outro cartaz disse, abra o painel "Propriedades" para cada referência relevante em seu projeto de plug-in e set "Copy Local" para falsa.

scroll top