我想构建一个 DLL,它在固定目录中导入另一个 DLL。我想要导入的 DLL 使用一些我无法修改的相对路径,并且我对这个“外部”DLL 没有任何了解。我刚刚得到的信息是它是为 32 位编译的。
对于我的 DLL,它是一个 Visual Basic 类库(与 Visual Studio 2022 Target Framework .NET Target Framework 4.62 一起使用),重要的是不要将外部 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,所以我现在无法真正判断缺少什么。
尝试直接使用 DllImport 导入。
<DllImport("C:\Applications\xxx\bi\ExampleDLL.dll", CallingConvention:=CallingConvention.Cdecl)>
Public Shared Function SomeFunction() As Integer
End Function