0

我有一个用于 DLL 的可视 C++ 项目和一个安装项目。在安装程序中,我添加了我的项目的内容文件。

有没有办法根据您是编译调试还是发布来将文件添加为内容文件?如果我在调试下编译,我想包括 boost_date_time-vc100-mt-gd-1_51.dll,如果我在发布下编译,我想包括 boost_date_time-vc100-mt-1_51.dll。

我的额外部门看起来像这样

Shell32.lib;libzmq.lib;log4cxx.lib;boost_date_time-vc100-mt-gd-1_51.lib;...

在其他库目录下,我添加了所有这些 .lib 文件的路径,这些文件还包含它们各自的 .dll 文件

我尝试了以下但没有成功...

  1. 添加了一个自定义构建步骤以在构建之前运行,它将正确的 dll 文件复制到 OutDir,并将此自定义构建步骤的输出设置为 dll 文件。

  2. 通过手动编辑 vcxproj 文件有条件地包含内容文件。如果配置是发布模式,我会将非调试版本设置为部署内容,将调试版本设置为 false,反之亦然。这看起来像这样,

    <ItemGroup Condition="'$(Configuration)'=='Release'">

    <None Include="boost_date_time-vc100-mt-1_51.dll ">

    <DeploymentContent>true</DeploymentContent>....

    </None></ItemGroup

然而,这些都不起作用。无论我如何构建项目,第二个选项似乎总是默认为调试模式。

4

1 回答 1

1

添加依赖项时,可以将其添加到一个配置或所有配置中:

在此处输入图像描述

[这张照片是 VS 2012 的,但 2010 和 2008 看起来几乎一样。]

因此,您在左上角选择要修改的配置,然后将库添加到additional dependencies. 请注意,您在此处添加的将是.lib与 DLL 关联的文件,而不是 dll 本身(编译器将使可执行文件依赖于 DLL,因为您链接到它的 .lib 文件)。

于 2012-12-18T22:50:08.970 回答