如何在Visual Studio 2010中正确引用dll
How to correctly reference a dll in Visual Studio 2010?
我有一个解决方案,其中包含一个c++ DLL项目,和一个c#项目,将使用这个DLL(通过使用PInvoke)。
dll正在构建到我的解决方案文件夹中的x64/Release
文件夹,这是有意义的,因为这样c#项目就不必戳到dll项目的文件夹。
我应该添加.dll
文件作为参考吗?我认为这可能现在工作,但打破事情在长期运行时,项目设置可能会改变。
我以前回答过一个类似的问题。这里我就不重复了。
你可能想看一下:
- 当使用开源库时,我们应该对源代码还是二进制文件进行编译?
希望有帮助。
通常在这种情况下,我配置我的解决方案,使所有项目编译为$(SolutionDir)bin$(Configuration)
。然后,二进制文件的定位方式与生产模式相同,dll可以很容易地使用。
至于保持最新版本的DLL,请记住,您可以设置依赖项,这样如果DLL中有任何更改,它将在构建程序集/应用程序之前重新构建。
另一种方法是使用构建事件(预构建和后构建)将DLL复制到适当的文件夹。
不能在托管项目中添加非托管DLL作为引用。DLL需要驻留在可执行文件的文件夹或系统PATH的任何其他文件夹中。
最好的方法是使用"Post Build Event"让VS将DLL复制到每次重建时需要的文件夹中
相关文章:
- 如何在 64 位 vb.net Windows 应用程序中引用 32 位 dll
- Visual c ++,使用字符串引用/指针调用 dll 函数
- 加载与引用 .NET DLL 位于同一文件夹中的引用的 .NET DLL 时"Not found"异常
- 解析引用 |exe/dll vs lib
- 是否可以跨 dll 边界返回常量引用/指向 std::vectors?
- std::thread 增加 DLL 引用计数,从而防止卸载 DLL
- 如何在 c# 代码中通过引用调用时从 c++ dll 更新数组值?
- C++ DLL 引用C++.exe中的函数和类
- 64 位进程中的 AnyCPU C# DLL 无法引用 64 位C++ DLL(给出错误:无法加载文件或程序集)
- 引用另一个文件夹中的.dll
- 当使用CreateObject从VBScript引用DLL时C++如何处理DLL版本?
- 由非托管 EXE 引用时托管 DLL 的应用程序配置
- Unity3D 导入 C++ DLL 用于按引用方法传递
- .NET CORE 2 DLL引用带有C 代码运行时错误
- clr 如何使用本机 c++ dll 的引用'&'参数调用函数?
- 在QtCreator中链接dll的未定义引用错误
- C 通过引用DLL中的功能传递std ::字符串
- 尝试在与我的 EXE 项目相同的解决方案中引用 DLL 项目时,出现错误"无法打开包含文件:"iostream"
- 如何在Visual Studio 2010中正确引用dll
- 在不引用DLL/程序集的情况下加载WinRT组件