我有一个DLL的可视化C ++项目和它的安装项目。在安装程序中,我添加了项目的内容文件。
是否有办法将文件添加为内容文件,具体取决于您是在编译调试还是发布?如果我在debug下编译,我想包括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文件
我尝试了以下但没有成功......
添加了自定义构建步骤,以便在构建之前运行,将正确的dll文件复制到OutDir,并将此自定义构建步骤的输出设置为dll文件。
通过手动编辑vcxproj文件,有条件地包含内容文件。如果配置是发布模式,我会将非调试版本设置为部署内容,将调试版本设置为false,反之亦然。这看起来像这样,
<ItemGroup Condition="'$(Configuration)'=='Release'">
<None Include="boost_date_time-vc100-mt-1_51.dll ">
<DeploymentContent>true</DeploymentContent>....
</None></ItemGroup
然而,这些都没有奏效。无论我如何构建我的项目,第二个选项似乎总是默认为调试模式。
答案 0 :(得分:1)
添加依赖项时,可以将其添加到一个配置或所有配置中:
[这张照片是VS 2012,但2010年和2008年看起来差不多。]
因此,您在左上角选择要修改的配置,然后将库添加到additional dependencies
。请注意,您在此处添加的内容将是与DLL关联的.lib
文件,而不是dll本身(编译器将使可执行文件依赖于DLL,因为您链接了.lib文件)。