iis7托管了wcf服务:避免将dll放在system32文件夹中

时间:2012-03-02 08:48:44

标签: c# asp.net wcf dllimport

我有一个引用dll的wcf服务。唯一可行的方法是将dll放在%windir%/ system32文件夹中。

我尝试过的事情

  • 尝试在iis express,开发服务器和iis之间切换(但这无关紧要)
  • 将dll放在bin文件夹和/或其他应用程序文件夹中
  • 尝试使用“regsvr32”util但是dll不是一个com dll所以它不起作用。(没有ddl入口点)
  • 它不是.NET dll所以我认为GAC不能被操纵来使用这个
  • 使用系统路径变量播放但没有任何成功

我真正想要的是什么
访问dll的一种更简单的方法,因此我不必将dll放在system32中,而是将其包含在应用程序文件夹中并从那里访问它。

我缺少什么?


修改  我确实发现this帖子有趣且类似,但同样,它也使用了system32方法,这是不可能的。

1 个答案:

答案 0 :(得分:1)

如果这是一个win32本机库,你可以预先加载"它来自一个已知位置,使用pinvoked LoadLibrary传递库的完整路径作为参数,在处理管道的早期某处。

当调用带有DllImport的库中的任何方法时,运行时将尝试加载库(并且会因为无法找到dll而崩溃)但是由于您预先加载了它,因此加载将成功(加载器)检查库文件名,没有注意从中加载库的目录。)