Ush*_*haP 4 c# c++ asp.net managed-c++ unmanaged
我的项目结构如下:
ASP.NET调用C#层调用托管 C++调用Native C++
(我试图避免使用互操作因此这就是托管c ++层的原因)
我编写单元测试来测试C#层并且它工作正常.当我尝试运行asp.net页面时,我得到:"Could not load file or assembly..."错误.我想通过当我将Native C++ dll 粘贴到"Temporary ASP.NET Files"(到相应的文件夹)时,该网站可以正常工作.
似乎Managed C++代码只有在它位于同一个文件夹中时才能找到Native C++代码 - 显然我不能在temp文件中拥有Native dll.
有没有办法在全局范围内设置Native(不适用于System32)?
谢谢你的评论.
我用代码设置服务器,它在cassini下运行,但是当我发布它(在iis7下运行)我得到"无法加载文件或程序集......"我正在运行IIS7 ApplicationPoolIdentity,.net 4集成非常感谢Pini.
技术上以这种方式使用Managed C++是本机/托管代码之间的Interop形式,常用的替代方案是COM和P/Invoke.这纯粹是一个术语,但是,使用P/Invoke会遇到同样的问题.
这篇博文文章在ASP.Net中加载C++程序集可能会帮助你 - 总之你需要:
%PATH%在托管C++程序集尝试加载本机C++ dll之前设置环境变量.DllImport属性设置dll路径(在您不使用P/Invoke时不适用于您的情况)LoadLibrary在托管C++程序集尝试加载本机C++ DLL之前,自己手动加载C++ DLL(例如with ).我怀疑将你的dll安装到Win SxS也会有效,但我不知道这是如何工作的.
| 归档时间: |
|
| 查看次数: |
2219 次 |
| 最近记录: |