Указание зависимости не от .NET в Visual Studio - PullRequest
8 голосов
/ 24 сентября 2008

Я вызываю не-.NET DLL из моего проекта, используя P / Invoke, это означает, что .dll всегда должен присутствовать в каталоге .exe.

Есть ли способ сообщить Visual Studio об этой зависимости, чтобы он автоматически копировал .dll в выходной каталог при компиляции и автоматически включал .dll в программу установки? Или я должен сделать это вручную?

Ответы [ 3 ]

8 голосов
/ 24 сентября 2008

Вы можете просто добавить .DLL к своему проекту.

Выберите панель Properties для этого файла и установите Build Action на Content и Copy to Output Directory на Copy if newer.

5 голосов
/ 24 сентября 2008

Вы можете скопировать / связать этот файл (ы) с проектом, и в окнах свойств установите «Действие сборки» на «Нет» и «Копировать в выходной каталог» на «Копировать, если новее» или «Копировать всегда».

Или вы можете использовать «События до сборки» и «События после сборки», где вы можете указать любые пакетные сценарии.

Я предпочитаю второй вариант, потому что этот способ более гибкий, чем первый.

Также вы можете изменить файл MSBuild и добавить задачу для копирования файлов.

2 голосов
/ 04 сентября 2009

Я думаю, что одна проблема с простым добавлением .DLL в проект состоит в том, что вам могут понадобиться разные версии DLL для сборки отладки и выпуска. Можно подумать, что вы можете добавить в файл как отладочную, так и выпускную версии DLL, и, основываясь на конфигурациях, исключить неподходящую, но я не смог найти способ сделать это. Я использую Visual Studio 2010. Я уверен, что это работало в старые времена с VS6.

...