如何添加外部本机依赖dll?
我有两个项目。 第一个是Windows窗体应用程序项目,第二个是类库项目。 Сlass库项目与FANN合作 。 Windows窗体是启动项目。
我应该让Fann.Net.dll和fanndoubleMT.dll与FANN一起使用。 我下载了这些库并将它们放在一个位于解决方案根目录下的文件夹lib中。
我将Fann.Net.dll作为外部dll添加到类库项目中。 我编译了这个项目。 我收到一条错误,上面写着“无法加载DLL’fanndoubleMT.dll’。我通过将fanndoubleMT.dll添加到文件夹Windows_Forms_Application bin Debug来修复此错误。
我认为这是一个可怕的解决方案,因为我使用git,每次你需要将dll转移到新工作区的这个文件夹。
真诚的,丹尼斯。
你可以试试这个:
- 添加/现有项目,而不是添加参考。
- 使用添加为链接。
- 确保要在构建文件夹中复制项目。 在VS中的库的属性中,将“构建操作”设置为“内容”并将“复制到输出目录”设置为“如果较新则复制”。
- 完成。 重建和测试。
建议链接https://social.msdn.microsoft.com/Forums/en-US/1b1b316a-8648-4243-a651-84de51fd2508/reference-native-dll-from-managed-c-project?forum=vssmartdevicesvbcs 。
您可以将本机dll添加为链接项,并使用“ 如果更新则复制 ”。
本机dll的问题在于,有时您会根据项目的配置(调试/发布或平台)使用不同的dll。
您可以编辑项目的.csproj并有条件地链接本机dll:
PreserveNewest PreserveNewest PreserveNewest PreserveNewest
请注意,复制选项设置为PreserveNewest ,这意味着“如果更新则复制”。
您不能“添加引用”到非托管dll。 一种解决方案是在Windows窗体项目中添加Post Build Event。 类似于:xcopy .. lib fanndoubleMT.dll $(TargetPath)post build事件也可以执行.cmd或.bat文件
您仍然需要对托管程序集的引用’Fann.Net.dll’
以上解决方案由liang编写,仅适用于扁平化项目结构! 您可能希望将解决方案中的所有DLL组织到一个名为“Dependecies”的文件夹中。 但请注意,文件在解决方案资源管理器中相对于项目结构进行了复制。 (使用Visual Studio 2015测试)
- 在解决方案资源管理器中创建文件夹依赖项
- 添加/现有项目,而不是添加参考。
- 使用添加为链接。
- 在VS中的库的属性中,将“构建操作”设置为“内容”并将“复制到输出目录”设置为“如果较新则复制”。
现在您应该拥有以下解决方案资源管理器
Your Project - class1.cs - DependenciesFann.Net.dll - DependenciesfanndoubleMT.dll
添加postbuild步骤:
xcopy "$(TargetDir)Dependencies" "$(TargetDir)" /s /e /h /Y
这种将文件添加到项目和创建后期构建步骤的解决方案具有以下优势:
如果dll不在项目bin文件中,则应允许复制dll。
-
右键单击你的DLL
-
单击属性
-
如果“复制到输出目录”为“不复制” ,请选择“始终复制”
-
重建项目。 它会出现。
上述就是C#学习教程:如何添加外部本机依赖dll?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
- 右键单击您的项目
- 选择添加,然后选择参考…
- 在Reference Manager窗口中,单击Browse …(位于底部)。
- 找到您的.dll,然后按添加。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/936456.html