调试asp.net &平沃克

发布于 2024-09-04 10:37:54 字数 753 浏览 4 评论 0原文

我知道您需要打开“本机代码”调试器才能进入 pinvoke'd dll,但我什至还没有达到这一点。相反,当我尝试进入 dll 时,出现以下异常

“无法加载 DLL 'Native.dll':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)”

如果我检查我的模块,我会看到我当前所在的 .Net dll 位于: C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\project\c4e2b8a9\1234a123\ assembly\d12\de123456\12345678_0304cb01\dotnet.dll

所以我没有找到我的 pinvoked dll 这是有道理的,因为它不存在于该路径中。我怎样才能做到这一点,以便当我的代码从“临时 ASP.Net 文件”位置运行时,它将看到我的 pinvoked dll? (无需对路径进行硬编码)。

目前我的声明如下:

    [DllImport("Native.dll")]
    public static extern int RunTest();

编辑:

我发现了一个类似的问题,并提出了一些好的建议。 非托管 DLL 无法在 ASP.NET 服务器上加载

I know you need to turn on the 'Native Code' debugger in order to step into the pinvoke'd dll, however I am not even getting to that point. Instead, when I try to step into the dll I am getting the following exception

"Unable to load DLL 'Native.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)"

If I check my modules I see that the current .Net dll I am in is located in:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\project\c4e2b8a9\1234a123\assembly\d12\de123456\12345678_0304cb01\dotnet.dll

So it makes sense that I am not finding my pinvoked dll, as it does not exist in this path. How can I make it so that when my code is run from the 'Temporary ASP.Net files' location, it will see my pinvoked dll? (Without hardcoding the path).

Current my decleration is as follows:

    [DllImport("Native.dll")]
    public static extern int RunTest();

Edit:

I found a similar question with some good suggestions. Unmanaged DLLs fail to load on ASP.NET server

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暮倦 2024-09-11 10:37:54

为了让 pinvoke 找到 dll,该 dll 必须位于 .net dll 附近或 PATH 变量中的目录之一。您可以将应用程序的路径动态添加到 PATH 环境中。使用环境类的进程变量。但您仍然需要在运行时知道应用程序的路径。

In order for pinvoke to find the dll, the dll must be located in near .net dll or in one of the directories in the PATH variable. You can add the path of your application dynamically to the PATH env. variable of the process using Environment class. But you will still have to know the path to your application at the runtime.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文