Especificando uma dependência non-.NET no Visual Studio
-
02-07-2019 - |
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?
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.