我有一个已经使用了很长时间的应用程序。我最近添加了一些新功能,包括 gMap。当我调试或构建它并测试时,我的应用程序运行良好。当我作为 clickonce 发布然后安装在我的同一台机器上时会出现问题。应用程序安装,当它尝试运行时,我收到错误“WMS 工具箱已停止工作”。查看事件查看器,我发现它显然缺少与 gMap 相关的 dll 文件。
--事件查看器故障1--
Description: The process was terminated due to an unhandled exception.
Exception Info: System.DllNotFoundException
at System.Data.SQLite.UnsafeNativeMethods.sqlite3_libversion()
at GMap.NET.CacheProviders.SQLitePureImageCache.Ping()
at GMap.NET.GMaps.SQLitePing()
at GMap.NET.WindowsForms.GMapControl..cctor()
Exception Info: System.TypeInitializationException
at GMap.NET.WindowsForms.GMapControl..ctor()
at wmsToolBox.wmsToolBox.InitializeComponent()
at wmsToolBox.wmsToolBox..ctor()
at wmsToolBox.Program.Main()
--事件查看器故障2--
Faulting application name: wmsToolBox.exe, version: 1.0.0.0, time stamp:
0x5d70eddb
Faulting module name: KERNELBASE.dll, version: 10.0.15063.1836, time
stamp: 0xbb572fa7
Exception code: 0xe0434352
Fault offset: 0x000f18e2
Faulting process id: 0x3a8
Faulting application start time: 0x01d563db00e3051a
Faulting module path: C:\windows\System32\KERNELBASE.dll
Report Id: 0bc8cd8f-c137-4cd8-a8d8-880ce20add89
Faulting package full name:
Faulting package-relative application ID:
我注意到这似乎是依赖于 sqlite.dll 的应用程序的一个已知问题。
从其他帖子中获取建议,这是我尝试过的:
我参考的来源
我还参考了以下网站上的建议。它们与 SO 上的帖子大致相同。
我终于能够解决这个问题。正如 elwood472 所说,它与他提供的笔记非常相似。我有一些微妙的补充,以提供更加简洁。这假定您已将引用添加到您的应用程序。
发布应用程序,它终于为我工作了。我想我通过搜索文件得到了不正确的框架版本。Elwood472 提议使用以下目录:\Solution Name\packages\System.Data.SQLite.Core.1.0.111.0\lib\net46\,根据您为其构建应用程序的框架,该目录可能不正确。我不确定 x86 和 x64 文件是否有区别,但我将它们复制到各自的文件夹中,效果很好。
如果您使用了错误的框架版本,您可能会在事件查看器中收到一条错误消息,显示Exception Info: System.BadImageFormatException
如果您缺少所有 dll 文件,您可能会在事件查看器中收到错误信息,显示Exception Info: System.DllNotFoundException
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句