首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从C++/CLR调用远程C# dll时的FileNotFoundException

从C++/CLR调用远程C# dll时的FileNotFoundException
EN

Stack Overflow用户
提问于 2015-06-19 08:43:59
回答 1查看 168关注 0票数 1

我的项目是一个插件的平台是建立在原生C++。该插件将重用现有C#项目的当前功能,该项目构建于.NET Framework4.0之上。我们使用C++/CLR作为调用C#代码的桥梁。也就是说,宿主应用程序(内置在非托管c++中)调用托管C++动态链接库,该托管C#动态链接库又调用C#动态链接库。

平台将在一个进程中运行,插件将在另一个进程中运行。平台查找插件动态链接库的方式是,用户在平台的用户界面中输入一个目录,平台将该目录下的所有插件动态链接库加载到插件进程中。

当我的插件文件夹是本地文件夹时,这很有效。然而,当我将插件文件夹设置为远程文件夹时,当我试图从C++/CLR类实例化一个C#类时,我得到了一个FileNotFoundException,详细信息是“未知的URL协议”。

我们的插件项目包含C++/CLR和C#代码,内置于不同的dll文件中。在调试模式下,在Visual Studio Modules视图中,加载了C++/CLR,而没有加载C# dll (两者都在应用程序目录中)。当我试图在C++/CLR代码中实例化一个托管类时,就会发生异常,然而,不幸的是,当我得到异常时,没有堆栈调用。

那么,如何允许主机插件进程正确加载远程C# dll呢?

EN

回答 1

Stack Overflow用户

发布于 2015-07-10 09:22:38

经过进一步调查,我们发现根本原因是插件的ApplicationBase设置不正确。由于某些原因,如果文件夹被设置为远程文件夹,平台将以Linux格式而不是windows格式传递文件夹,并且我们的软件仅在Windows上运行。这就是为什么会抛出"FileNotFoundException“,当我的插件文件夹是本地文件夹时,它工作得很好。我们需要更正windows路径格式的ApplicationBase。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30928183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档