摸了好久都没写文,主要寒假在玩以及在写实验室项目。
刚好最近实验室项目图像处理部分要用到C#的库,那就干脆用ASP.NET写后端,结果发现死活调用不了DLL,一直报“未能加载文件或程序集“Affdex.DLL”或它的某一个依赖项。找不到指定的模块。”
后来根据https://www.zhihu.com/question/28064585才发现,这个库包含了native的C++ DLL和封装好托管的DLL,而项目引用只能添加引用托管的DLL,无法添加native的C++ DLL。普通应用程序只需要保证运行目录下两个DLL均存在即可,但是ASP.NET不是,当网站运行的时候实际上把项目稳健复制到其他临时文件夹中执行,因此native的C++ DLL并不会被复制,导致缺少依赖项。
解决方法就是照上面链接给出的在写托管DLL的时候将原CLL延迟载入。但是因为这个库并不是我自己的,没法改动,估计只能零写一个单独的应用程序,通过进程间通信的方式来给后端提供数据了。
© Allow specification reprint