将调试和发布版本的库添加到VS解决方案中

时间:2009-12-31 10:08:26

标签: visual-studio visual-studio-2008

我的解决方案如下:

src/Project1
src/Project2
src/Project...
bin/*.{dll,exe}
lib/Debug/*.dll
lib/Release/*.dll

所有项目都设置为构建到顶级bin目录。我在lib文件夹中包含了许多第三方库依赖项,我喜欢在这里使用它们,然后它们与源代码库中的软件一起进行版本控制。

通常我让每个项目都添加对库的Debug版本的引用,但是当它发布时,我必须手动更改所有引用以指向Release版本。

我的问题是,有没有办法让Visual Studio根据构建配置自动选择DLL?

4 个答案:

答案 0 :(得分:10)

我想你在谈论C#?在这种情况下,您可以手动调整项目文件以引用正确的库,如下所示:

<Reference Include="Debug\XXX" Condition="'$(Configuration)'=='Debug'"/>
<Reference Include="Release\XXX" Condition="'$(Configuration)'=='Platform'"/>

或者如果目录名称与配置名称匹配,您甚至可以这样做:

<Reference Include="$(Configuration)\XXX"/>

如果需要,您也可以以相同的方式提取平台名称

答案 1 :(得分:2)

修改项目文件中的MSBuild设置,并为引用添加条件。 像这样:

<Reference Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <HintPath>D:\debug\libdll</HintPath>
</Reference>
<Reference Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <HintPath>D:\release\lib.dll</HintPath>
</Reference>
  • 要编辑项目文件,请先卸载它,然后按编辑项目文件。

一些参考信息:

答案 2 :(得分:1)

  

转到工具 - >选项 - &gt;项目和解决方案 - &gt; VC ++目录

使用$(Configuration)变量指定正确的文件夹

e.g。如果要在发布模式下使用 C:\ mystuff \ lib \ Release ,而在调试模式下使用 C:\ mystuff \ lib \ Debug ,请添加以下行到图书馆文件

C:\mystuff\lib\$(Configuration)

此处$(Configuration)调试发布

答案 3 :(得分:0)

与上面的@stijn的#2解决方案类似,但是以HintPath方式显示:

<Reference Include="CoolWidget">
  <HintPath>..\..\coolWidgetPath\bin\$(Configuration)\CoolWidget.dll</HintPath>
</Reference>