Não foi possível carregar o arquivo ou o assembly ou uma de suas dependências. O sistema não pode encontrar o arquivo especificado. (Nenhum GAC permitido)

Eu tenho o programa "Principal", que carrega meu próprio arquivo "plugin.dll" dinamicamente usando reflexão. O arquivo "plugin.dll" faz referência ao terceiro "device.dll" usando referências do visual studio. Desde que "device.dll" e "plugin.dll" estejam na mesma pasta que o programa "Main" ou o programa "Main" tenha a referência ao "plugin.dll" tudo funcionará bem. Mas assim que movo o arquivo "device.dll" para outra pasta, recebo a seguinte mensagem de erro: "Não foi possível carregar o arquivo, o assembly ou uma de suas dependências. O sistema não pode encontrar o arquivo especificado." O problema ocorre porque o programa não encontra o arquivo "device.dll". A propriedade "Copiar local" ou "Caminhos de referência" não tem nenhum efeito nesse problema. Entendo que preciso especificar o caminho para o "device.dll", mas não consegui encontrar uma maneira de fazer isso sem colocar o "plugin.dll" e o "device.dll" no GAC (cache global de assemblies). O GAC não é uma solução, pois a DLL de terceiros também precisa ter nomes fortes (desmontar e montar novamente), o que não é permitido pela licença de direitos autorais.

Detalhes adicionais: Usando o visual studio 2013 e o .Net framework 4.0, o FUSLOGVW não registra nenhum erro (tem alguma idéia do porquê?).

Aguardamos suas sugestões, desde já, obrigado.

questionAnswers(1)

yourAnswerToTheQuestion