使用安装项目安装后,C#Winforms应用程序无法启动

时间:2014-05-03 06:47:46

标签: c# windows winforms dllnotfoundexception

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

我正在使用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 form。

我添加了以下参考资料:

  1. EntityFramework.dll
  2. EntityFrameworkServer.dll
  3. System.Data.Sqlite.dll
  4. System.Data.Sqlite.EF6.dll
  5. System.Data.Sqlite.Linq.dll
  6. 当我在系统上测试时发生错误。

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

所以我修复了将DLL文件夹添加到Package Project中的Application Folder,如下图所示。

Package Project