我正在创建一个 .NET DLL,它充当非托管 DLL 上使用 PInvoke 的包装器。我的问题是,如果我在使用单击一次时调用引用其他 DLL 的非托管 DLL,那么我需要在使用该 .NET Wrapper DLL 的项目部署中包含哪些 DLL?
涉及的文件:
- 使用一次点击部署的项目
- 包装非托管 DLL 的 .NET DLL(称为 X.DLL)
- X.DLL 是非托管 DLL
- Y.DLL 是由 X.DLL 调用的非托管 DLL
我是否必须在单击一次部署中包含所有这些文件?只是.NET DLL?解释为什么也会有帮助:)
最佳答案
是的,您必须指定所有这些。或者至少确保它们都以一种或另一种方式在目标上可用。
虽然 .NET dll 可能会被自动选择(作为项目的一部分)。但您必须检查是否正确检测到非托管 DLL,否则添加它们。
如果这是关于/Sytem32/DLL 或以其他方式共享的文件,您可能会遇到问题。您无法使用 ClickOnce 安装共享 DLL,因此您必须复制到本地。然后希望它能起作用。
关于.net - 使用其他 DLL 的 PInvoke DLL - ClickOnce 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3712692/