0

当我在安装项目部署安装后运行快捷方式时,出现以下错误并且应用程序没有启动。

我正在使用 Winforms (C#) 创建一个 Windows 应用程序。我什至在发布模式下编译它,但仍然出现错误。

Problem signature:
  Problem Event Name:   CLR20r3
  Problem Signature 01: sendmail.exe
  Problem Signature 02: 1.0.0.0
  Problem Signature 03: 536482de
  Problem Signature 04: System.Data.SQLite
  Problem Signature 05: 1.0.92.0
  Problem Signature 06: 532a0415
  Problem Signature 07: 124
  Problem Signature 08: 1d
  Problem Signature 09: System.DllNotFoundException
  OS Version:   6.1.7600.2.0.0.256.1
  Locale ID:    1033
  Additional Information 1: 0a9e
  Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
  Additional Information 3: 0a9e
  Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

编辑1:

我正在使用 c#,windows 窗体。

我添加了以下参考:

  1. 实体框架.dll
  2. EntityFrameworkServer.dll
  3. System.Data.Sqlite.dll
  4. System.Data.Sqlite.EF6.dll
  5. System.Data.Sqlite.Linq.dll

当我在我的系统本身上进行测试时会发生错误。

4

3 回答 3

0

确保 DLL 与程序集位于同一目录中。在每个引用的 DLL 的属性中设置CopyLocal=true

于 2014-05-03T12:20:27.337 回答
0

您使用的是没有在其中嵌入 VC++ 运行时的 Sqlite 版本吗?如果是,则需要在测试机器上安装 VC++。

在您的设置创建的文件夹中的测试机器上是否缺少任何 dll(存在于您的输出文件夹中)?

于 2014-05-03T06:54:58.847 回答
0

我也遇到了完全相同的问题。我的程序在调试时也可以正常工作,但是在我构建安装程序并尝试安装到我的计算机后,发生了这个错误。

我决定比较 Program Files 中的 Application 文件夹和 Debug 文件夹。我发现包项目没有复制包含“SQLite.Interop.dll”文件的两个文件夹 x64 和 x86。
我将它从我的 Debug 文件夹复制到 Program Files 中的 Application 文件夹,我的工作就像一个魅力。

所以我通过将该 DLL 文件夹添加到包项目中的应用程序文件夹来修复,如下图所示。

打包项目

于 2016-08-03T11:13:27.510 回答