Pergunta

Eu estou chamando um non-.NET dll do meu projeto usando P / Invoke, o que significa que o arquivo .dll deve estar sempre presente no diretório do .exe.

Existe alguma maneira de dizer Visual Studio dessa dependência, para que ele irá copiar automaticamente o arquivo .dll no diretório de saída quando compilar e, automaticamente, irá incluir o .dll na configuração? Ou eu tenho que fazer isso manualmente?

Foi útil?

Solução

Você pode copiar / link deste arquivo (s) para o projeto, e nas propriedades janelas set "Build Action" para "None" e "Copy to Output Directory" para "Copy if newer" ou "Copiar sempre".

Ou você pode usar um "Pre-Build Events" e "Post-Build Events", onde você pode especificar quaisquer scripts em lotes.

Eu prefiro a segunda opção, pois desta forma é mais flexível do que o primeiro.

Além disso, você pode modificar um arquivo MSBuild e adicionar uma tarefa para cópia do arquivo (s).

Outras dicas

Você pode simplesmente adicionar o .dll para seu projeto.

Selecione o painel Properties para esse arquivo e conjunto Build Action para Content e Copy to Output Directory para Copy if newer.

Eu acho que um problema com apenas adicionando uma DLL para o projeto é que você pode precisar de diferentes versões de um DLL para depuração e compilações. Você acha que você pode adicionar ambas as versões de depuração e liberação do DLL para o arquivo, e com base em configurações, excluir a um impróprio, mas eu não conseguia encontrar uma maneira de fazer isso. Estou usando o Visual Studio 2010. Estou certo de que isso funcionou nos velhos tempos com VS6.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top