管理未在Visual Studio中引用的DLL的最佳方法是什么

use*_*535 5 .net c# dll dllimport visual-studio-2010

我正在使用Visual Studio 2010中的C#.NET项目.我正在集成具有DLL的硬件外围设备.我在我的项目中引用了DLL文件,代码编译/构建没有任何错误.当我运行我的应用程序时,我得到一个运行时错误,说它正在寻找另一个DLL文件.看来我在我的项目中引用的DLL有42个其他依赖的DLL.当我将这42个DLL放在输出目录(bin/debug)中时,应用程序运行得很好.

我的问题是:当Visual Studio不将它们识别为依赖库时,管理这些额外DLL文件的最佳方法是什么?

Mag*_*son 6

此方案与部署SQL Server Compact文件非常相似.在那种情况下,它被称为Private File–Based Deployment.
它还需要一些应用程序依赖的外部(非托管)DLL.

它归结为将DLL包含在项目中并将其Copy to Output Directory属性设置为Copy if newer.成功构建后,它们将被复制到目标文件夹.

编辑:
根据您的评论,您似乎在应用程序的安装时遇到问题(在您的问题中完全没有提到的),并且您已经Custom Action为安装程序编写了一个将这42个DLL复制到目标的程序.
CA不需要这样做.只需右键单击安装程序项目 - >查看 - >文件系统.选择Application Folder,在右侧右键单击并选择Add File并添加42个DLL.


use*_*772 2

如果您打算在编译时管理这些文件,您可以向项目添加构建后事件,以将所有必需的文件复制到输出目录。在此处向 xcopy 添加标志,以便仅在更改时进行复制。

如果您的意思是在运行时安装程序将是您的最佳解决方案。