如何将包装器DLL连接到API DLL以便在C#项目中使用?

如何将包装器DLL连接到API DLL以便在C#项目中使用?,c#,c++,.net,dll,C#,C++,.net,Dll,我使用WF解决方案来规范音频文件的音量。它有两个.dll库,必须连接到项目才能使用。其中一个-.NET库连接良好,另一个-API根本无法连接到项目。在运行时,我得到了一个FileNotFound异常,它是deatile描述 无法加载文件或程序集“DynamicAudioNormalizerNET.dll”或其依赖项之一 文档中也写着 基于Microsoft.NET的应用程序→ 使用由DynamicAudioNormalizerNET.dll程序集提供的DynamicAudioNormalizer

我使用WF解决方案来规范音频文件的音量。它有两个.dll库,必须连接到项目才能使用。其中一个-.NET库连接良好,另一个-API根本无法连接到项目。在运行时,我得到了一个
FileNotFound
异常,它是deatile描述

无法加载文件或程序集“DynamicAudioNormalizerNET.dll”或其依赖项之一

文档中也写着

基于Microsoft.NET的应用程序→ 使用由DynamicAudioNormalizerNET.dll程序集提供的DynamicAudioNormalizerNET C++/CLI包装类在运行时需要DynamicAudioNormalizerAPI.dll

它的依赖项当然是“DynamicAudioNormalizerAPI.dll”,但它与NET.dll一样位于解决方案的文件夹中。此外,这两个库都作为文件添加到解决方案中,并且它们的“复制到输出”功能设置为“始终复制”。如何链接这两个DLL或使其正常运行

它的依赖关系当然是“DynamicAudioNormalizerAPI.dll”,但它也在解决方案的文件夹中


它需要位于projekt输出目录中(例如,
bin\debug
bin\release
,其中是.exe),而不是解决方案文件夹中。

可能有两个原因

  • 第一个原因可能是
    DynamicAudioNormalizerAPI.dll
    未与
    DynamicAudioNormalizerNET.dll
    放在一起。检查
    Copy local
    reference属性(在解决方案资源管理器中),并确保这两个DLL组合在一起

  • DynamicAudioNormalizerAPI.dll
    可能有自己未解析的依赖项。通过使用专用工具打开
    .dll
    ,您可以轻松地检查这一点。它将显示您是否还需要一些
    运行时
    或其他东西


  • 是的,因为我已经将它添加到项目中,并设置了“复制到发行版和调试文件夹”功能。你应该在问题中包含这些信息。第一个解释中的“组合”是什么意思?“复制本地”功能设置为true。API DLL没有通过引用包含到项目中,这让我想起了:无法添加对“…\DynamicAudioNormalizerAPI.DLL”的引用。请确保该文件可访问,并且是有效的程序集或COM组件。我还通过这个工具获得了API依赖关系,但我该怎么办?@АПППФБС
    “走到一起”
    意味着在文件系统中看到的所有东西(可能有许多副本)都必须确保或放置
    DynamicAudioNormalizerAPI.dll
    。因此,在
    我的计算机中
    必须有两个
    .dll
    一起
    DynamicAudioNormalizerNET.dll
    DynamicAudioNormalizerAPI.dll
    。把下载链接(和你的.net版本)放在有问题的地方,我会自己测试。它是.net 4,5和这些文件。
    Dependency Walker
    显示
    PTHREADVC2.DLL
    缺失。另外,不要忘记,您的程序变成了仅限x64(因为DynamicAudioNormalizerAPI.dll是为x64平台编译的)。谢谢您,我已经修复了所有问题。