Можно ли добавить путь к .dll в окне свойств Visual Studio 2010? - PullRequest
1 голос
/ 01 июля 2011

У меня есть Visual Studio 2010 и проект, который использует стороннюю библиотеку. Эта сторонняя библиотека состоит из заголовочных файлов, библиотечных файлов и DLL-файлов. Итак, чтобы мой проект включал заголовочные файлы и ссылки на библиотечные файлы, я создал и добавил в него следующий лист свойств:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
  </PropertyGroup>
  <ItemDefinitionGroup>
    <ClCompile>
      <AdditionalIncludeDirectories>
        C:\sdk\superlib\include;
        %(AdditionalIncludeDirectories)
      </AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <AdditionalLibraryDirectories>
        C:\sdk\superlib\lib;
        %(AdditionalLibraryDirectories)
      </AdditionalLibraryDirectories>
    </Link>
  </ItemDefinitionGroup>
</Project>

Мой проект успешно компилируется и связывается с библиотекой. Но это проблема: для запуска моего исполняемого файла нужна библиотека .dll, которая находится внутри папки sdk bin. Поэтому, если я нажму F5 в Visual Studio, он будет жаловаться, что superlib.dll не найден :(. Конечно, я могу вручную скопировать его в выходную папку моего проекта - но можно ли как-то установить путь к .dll в файле .vsprops так он автоматически используется при запуске и отладке?

1 Ответ

3 голосов
/ 02 июля 2011

Вы можете указать это, добавив файл DLL в массив элементов @ (Нет) и задав значение метаданных, чтобы оно автоматически копировалось в вывод. Добавьте следующее в ваш файл реквизита.

<ItemGroup>
   <None Include="C:\sdk\superlib\bin\superlib.dll">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
   </None>
</ItemGroup>

Если вы не хотите, чтобы это отображалось в обозревателе решений, добавьте также метаданные Visible = false,

<ItemGroup>
   <None Include="C:\sdk\superlib\bin\superlib.dll">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      <Visible>false</Visible>
   </None>
</ItemGroup>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...