是否可以在Visual Studio 2010属性表中添加.dll的路径?

时间:2011-07-01 17:44:12

标签: visual-studio-2010 msbuild

我有一个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>

我的项目成功编译并与库链接。但这是一个问题:为了让我的可执行文件运行,它需要一个位于sdk bin文件夹内的库.dll。因此,如果我在Visual Studio中点击F5,它会抱怨找不到superlib.dll :(。当然我可以手动将其复制到我项目的输出文件夹中 - 但是有可能以某种方式在.vsprops文件中设置路径到.dll所以它会在运行和调试时自动使用吗?

1 个答案:

答案 0 :(得分:3)

您可以通过将.dll文件添加到@(None)项目数组并设置元数据值以便将其自动复制到输出来指定此项。将以下内容添加到道具文件中。

<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>