在Visual Studio 2008中调试ASP.NET Web服务,C ++ / CLI DLL和本机DLL

我有一个包含三个项目的VS2008解决方案:C#ASP.NET Web服务,它使用C ++ / CLI DLL,而后者又调用本机C ++ DLL的函数。 所有参考都已正确设置。 在web服务bin文件夹中,有三个DLL。 问题是当我点击F5时,浏览器中的页面通知我有关HRESULT 0x8007007E的FileNotFoundException ,找不到指定的模块。

缺少的模块是我的本地DLL。 ASP.NET Development Server在%USERPROFILE%AppDataLocalTempTemporary ASP.NET Filesroot复制(并使用)我的C ++ / CLI DLL,但不是本地的。 如果我用C ++ / CLI DLL手动将原生DLL复制到相同的文件夹,那么我可以调试我的Web服务。 但是,这种复制看起来不正确。

在PATH的某个地方复制本机DLL也不会觉得正确,因为其他开发人员需要记住它。

这里有一个类似的问题,一个博客文章链接在一个答案。 给定的解决方案要求我改变DLL的延迟加载,这似乎是一个半熟的解决方法,因为它需要由于开发障碍而改变最终产品。

是否有适当的方法来调试Web服务,C ++ CLI DLL和本机DLL的组合?


问题很简单,编译器无法确定本机c ++库的位置。

所以,有一些方法可以解决这个问题。

  • 使用DLLImport在运行时使用相对或绝对路径加载dll。
  • path环境变量设置为它的位置。
  • 项目的构建过程非常复杂(请参阅下面的链接,您显然已经阅读过该链接)。
  • http://blogs.msdn.com/b/jorman/archive/2007/08/31/loading-c-assemblies-in-asp-net.aspx

    除此之外没有真正的答案。

    链接地址: http://www.djcxy.com/p/95389.html

    上一篇: Debugging ASP.NET web service, C++/CLI DLL, and native DLL in Visual Studio 2008

    下一篇: Visual Studio No Symbols have been loaded for this document