2011-07-01 5 views
1

私はVisual Studio 2010とサードパーティのライブラリを使用するプロジェクトを持っています。このサードパーティライブラリは、ヘッダーファイル、ライブラリファイル、.dllファイルで構成されています。だから、ライブラリファイルとヘッダファイルやリンクを含むように私のプロジェクトのためのために、私が作成し、次のプロパティシートを追加しました: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へのパスを設定することは可能です

答えて

2

これは、.dllファイルを@(None)アイテム配列に追加し、自動的に出力にコピーされるようにメタデータ値を設定することで指定できます。あなたの小道具に提出。

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

を使用すると、これは、ソリューションエクスプローラに表示さだけでなく可視= falseのメタデータを追加したくない場合は、

<ItemGroup> 
    <None Include="C:\sdk\superlib\bin\superlib.dll"> 
     <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
     <Visible>false</Visible> 
    </None> 
</ItemGroup> 
関連する問題