在 Visual Basic Class Projekt 中链接 .DLL 不起作用。文件未找到异常

问题描述 投票:0回答:1

我想构建一个 DLL,它在固定目录中导入另一个 DLL。我想要导入的 DLL 使用一些我无法修改的相对路径,并且我对这个“外部”DLL 没有任何了解。我刚刚得到的信息是它是为 32 位编译的。

对于我的 DLL,它是一个 Visual Basic 类库(与 Visual Studio 2022 Target Framework .NET Target Framework 4.62 一起使用),重要的是不要将外部 dll 的任何部分复制到我的项目文件夹中,因为它仅适用于“固定”目录现在所在的位置..

谢谢你的帮助

所以到目前为止我尝试了以下步骤:

  • 我通过添加现有元素 -> 添加为链接 -> 属性设置为“内容”+“不复制”来添加外部 .DLL
  • 然后我意识到“添加为链接”不足以现在定义“导入示例DLL”
  • 因此还尝试在引用管理器中找到 DLL 以将其添加为引用。
  • 最初不存在,所以我转到项目属性并添加了外部 DLL 现在所在的引用路径。
  • 然后我可以在Assembly下的Referral Manager中选择.DLL并选择它。
  • 我在参考属性中取消选择本地副本。
  • 现在找到了导入的命名空间,我可以构建该项目了。

我仍然收到 FileNotFoundException:

FileNotFoundException:Die Datei oder Assembly“ExampleDLL, Version=3.20.0.0、Culture=neutral、PublicKeyToken=null" 或者其他 Abhängigkeit davon wurde nicht gefunden。 Das System 可能会消亡 angegebene Datei nicht finden.

我还尝试通过以下方式在app.config中添加DLL的路径:

<runtime>
 <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
        <assemblyIdentity name="Siemens"                                                
                          culture="neutral"
                          publicKeyToken="e33b67d3bb5581e4"/>
        <codeBase version="3.20.0.0" 
                  href="C:/Applications/xxx/bi/ExampleDLL.dll"/>
    </dependentAssembly>
</assemblyBinding>
</runtime>

但我现在也没有让它工作。

有人可以向我解释一下导入 DLL 的正确方法吗?无需更改其原始目录,也无需复制 DLL 的任何内容。我无法查看 DLL,所以我现在无法真正判断缺少什么。

vb.net visual-studio import dll dllimport
1个回答
0
投票

尝试直接使用 DllImport 导入。

<DllImport("C:\Applications\xxx\bi\ExampleDLL.dll", CallingConvention:=CallingConvention.Cdecl)>
Public Shared Function SomeFunction() As Integer

End Function
© www.soinside.com 2019 - 2024. All rights reserved.