使用C ++引用项目时C#项目崩溃:" System.IO.FileNotFoundException"

时间:2016-02-18 11:36:52

标签: c# c++ .net windows-runtime windows-phone-8.1

我在Windows Phone 8.1应用程序(winrt,没有silverlight)上使用C ++子项目中的类时检索以下消息:

  

(System.IO.FileNotFoundException)"指定的模块不能   找到。 (HRESULT异常:0x8007007E)"

我之前遇到过这个错误,当我为W8.1(桌面,x86和ARM)开发相同的应用程序时。我用 procmon.exe (进程监视器)解决了这个问题,它记录了所有搜索到的库及其结果(找到/未找到)。

使用 procmon.exe 工具,我找到了找不到的库(curl,websockets,ogg,sqlite3),并且我添加到主项目根目录中。这解决了桌面问题。

现在我将开发的应用程序(Windows 8.1桌面)移植到WindowsPhone 8.1 winrt(没有Silverlight)。

我遇到了同样的问题,我添加了与桌面项目(curl,websockets,ogg,sqlite3)相同的库,但它会抛出相同的异常(加载库,因为如果我添加然后,在ARM构建上的x86版本抛出" BadImageException"而不是)。

编辑1:

让我给你一个项目结构的细分: - AppCS:C#启动项目。目标是Windows Phone 8.1(winrt,没有silverlight)。   参考文献AppCS&有以下dll作为内容:

ogg: 
    libogg.dll
    libvorbis.dll
    libvorbisfile.dll

websockets:
    libwebsockets.dll

curl:
    libcurl.dll
    libeay32.dll
    ssleay32.dll

sqlite3:
    sqlite3.dll
  • AppCPP:C ++ dll库。目标Windows Phone 8.1(v120_wp81工具集)。 这是游戏核心。参考文献libcocos

  • libcocos:dll库; Windows Phone 8.1(v120_wp81)和Windows之间的共享项目Windows 8.1。 这是游戏引擎,我假设正在使用dll(来自AppCS)。

任何建议的解决方案/工具来解决它?

1 个答案:

答案 0 :(得分:0)

最后我可以解决这个问题。正如预期的那样,我没有附上正确的dll。 似乎没有一种很酷/简单的方法来检测它,所以,你应该在一个大多数空的测试项目上识别它:

https://social.msdn.microsoft.com/Forums/windowsapps/en-US/968eecee-a1f8-456f-886d-5600c8968fb2/wp81-c-project-crash-when-using-c-project-systemiofilenotfoundexception?forum=wpdevelop#968eecee-a1f8-456f-886d-5600c8968fb2