我有一个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所以它会在运行和调试时自动使用吗?
答案 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>