【发布时间】:2012-12-18 22:43:45
【问题描述】:
我有一个用于 DLL 的可视 C++ 项目和一个安装项目。在安装程序中,我添加了我的项目的内容文件。
有没有办法根据您是在编译调试还是发布来将文件添加为内容文件?如果我在 debug 下编译,我想包含 boost_date_time-vc100-mt-gd-1_51.dll,如果我在 release 下编译,我想包含 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 文件
我尝试了以下但没有成功...
添加了一个自定义构建步骤以在构建之前运行,它将正确的 dll 文件复制到 OutDir 并将此自定义构建步骤的输出设置为 dll 文件。
-
通过手动编辑 vcxproj 文件有条件地包含内容文件。如果配置是发布模式,我会将非调试版本设置为部署内容,将调试版本设置为 false,反之亦然。这看起来像这样,
<ItemGroup Condition="'$(Configuration)'=='Release'"><None Include="boost_date_time-vc100-mt-1_51.dll "><DeploymentContent>true</DeploymentContent>....</None></ItemGroup
然而,这些都不起作用。无论我如何构建我的项目,第二个选项似乎总是默认为调试模式。
【问题讨论】:
-
你是用 LIB 链接 DLL,还是使用
LoadLibrary? -
我更新了我的问题。我想这并没有真正缩短库名称。我使用的是标头,但我调用的函数需要 .dll,因此不涉及 lib
标签: visual-studio-2010 visual-studio visual-c++