Visual Studio 2008 C++没有检测到SQLITE DLL的依赖

Visual Studio 2008 C++没有检测到SQLITE DLL的依赖

问题描述:

我有几个windows C++程序通过DLL使用SQLITE。 visual-studio项目属性引用sqlite3.lib。他们建立并运行OK。Visual Studio 2008 C++没有检测到SQLITE DLL的依赖

但是,当我创建一个安装程序时,不能可靠地检测到对SQLITE3.DLL的依赖性,该DLL不包括在内,并且我的客户端陷入“DLL Hell”中。

每一次,我都必须手动检查安装程序是否包含DLL。如果没有,那么我必须手动使用“文件系统编辑器”来添加DLL。当我这样做,并请求重建安装程序时,visual studio突然检测到DLL,并添加了另一个副本,然后抱怨有两个副本。所以我必须停止构建,手动删除多余的副本,然后重新开始构建。

这里是截图,显示双份。

alt text http://66.199.140.183/vs2008.jpg

这是非常令人沮丧,而且容易出错!

有什么办法强制visual studio每次只包含一个DLL副本而无需人工干预?

“排除”的依赖属性设置为“False”和“Vital”设置为“True”吗? (或者更重要的是,你甚至可以将“条件”设置为“真”,这会使该组件始终安装。)

+0

我相信你的解决方案需要我在开始构建之前手动添加DLL,而不是依靠在依赖检测上。这将是好的,除了VS2008然后添加了DLL的第二个副本,然后抱怨存在两个副本的事实。 – ravenspoint 2010-04-13 16:47:05

+0

我指的是安装项目部分下显示的“检测到的依赖项”部分。 如果您没有使用安装项目,那么假设您将SQLITE3设置为“参考”(如果您的项目属性...),在这种情况下,您可以在项目属性的“参考”选项卡中突出显示它,然后更改“复制本地”的属性为“真”。 – ewall 2010-04-14 15:01:25