Elmah无法找到SQLite.Interop.dll

时间:2015-12-02 19:55:15

标签: c# .net sqlite asp.net-mvc-4 elmah

我在通过Nuget安装的MVC项目中有ELMAH,它无法找到SQLite.Interop.dll。

  

[DllNotFoundException:无法加载DLL' SQLite.Interop.dll':The   找不到指定的模块。 (HRESULT的例外情况:   0x8007007E)]
  System.Data.SQLite.UnsafeNativeMethods.sqlite3_config_none(SQLiteConfigOpsEnum   op)+0 System.Data.SQLite.SQLite3.StaticIsInitialized()+111
  System.Data.SQLite.SQLiteLog.Initialize()+48
  System.Data.SQLite.SQLiteConnection..ctor(String connectionString)+55   Elmah.SQLiteErrorLog.GetErrors(Int32 pageIndex,Int32 pageSize,IList   errorEntryList)+338 Elmah.ErrorLogPage.OnLoad(EventArgs e)+455
  System.Web.UI.Control.LoadRecursive()+54
  System.Web.UI.Page.ProcessRequestMain(布尔   includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)   772

我的输出目录包含适当的x86和x64目录,其中包含程序集。

enter image description here

如果我将其中一个复制到bin中,ELMAH工作正常。

在这个项目上工作的其他开发人员都没有遇到任何问题。我们在任何人的GAC中都在本地使用IIS Express,VS 2013和No SQLite二进制文件。

1 个答案:

答案 0 :(得分:0)

我已经看到了几个解决方案:

  • 将SQLite.Interop.dll作为项添加到您的Web应用程序的根文件夹中,并使用' Build Action'设置为内容和'复制到输出目录'设置为'复制如果更新'或者'始终复制'。在这种情况下,您需要选择要链接到的x86或x64版本,具体取决于您的Web应用程序是否将以32位启用运行。
  • 在post build事件中复制相应的SQLite.Interop.dll。
  • 使用MSBuild目标复制相应的SQLite.Interop.dll。