sqlite - 如何使用 ClickOnce 发布带有 SQLite 的 Winforms 应用程序

标签 sqlite visual-studio-2015 clickonce

我有一个使用 Visual Studio Community 2015 在 64 位计算机上的 Windows 8.1 上开发的小型 C# WinForms 应用程序,目标是 .Net Framework 4.5.2 和任何 CPU |首选 32 位。 (我也尝试只针对 x86)。

我使用 NuGet 包管理器安装 Entity Framework 6.3.1 和 System.Data.SQLite 1.0.101(安装了 System.Data.SQLite、System.Data.SQLite.Core、System.Data.SQLite.EF6 和 System.Data .SQLite.Linq),虽然 System.Data.SQLite.Core 没有显示在项目引用中。

该应用程序在 VS 调试器中运行良好,但 ClickOnce 发布版本在安装并在同一台计算机上运行时触发无法加载 SQLite.Interop.dll 异常。

我在解决方案资源管理器中没有看到对 SQLite.Interop.dll 的任何引用。在项目的 x86 和 x64 Debug 文件夹中都有这样的 dll,但在空的 Release 文件夹中没有。当我尝试添加对 x86 或 x64 dll 的引用时,我收到一条错误消息,指出无法添加它们(即无法访问或不是有效的程序集或 COM 组件)。项目引用中的所有 3 个 SQLite dll 都具有 Copy Local = true。

我猜 SQLite NuGet 安装未能设置某些项目属性/引用,但我不知道这可能是什么,为什么以及如何解决它。我什至不确定谁该负责:SQLite、NuGet、Visual Studio,我?

谢谢你的帮助。史蒂夫

最佳答案

我刚刚找到了一个可行的解决方案。阅读概述的评论 https://github.com/oysteinkrog/SQLite.Net-PCL/issues/158#issuecomment-88163499 <-那里

重要部分:

I created new PROJECT folders for x86 and x64. I created the project folders in the project that click-once deploys. That is, the project that produces the executable. I copied the interop files from the bin folder into the new solution folders

关于sqlite - 如何使用 ClickOnce 发布带有 SQLite 的 Winforms 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37038929/

相关文章:

java - 获取列名包含大写字符的表的主键时,Jooq 的值无效

sqlite - 如何在此代码中添加删除语句?

sql - 仅在哪里查询?

npm - 如何在 Task Runner Explorer VS2015 中配置 "npm install"

sqlite错误通过命令行导入csv

visual-studio - Visual Studio 找到 systemjs typescript 定义,但无法在编译时找到它们

c++ - 使用 Visual Studio 2015 运行时,OpenCV 无法打开视频文件

.net-4.0 - MageUI.exe 不包含兼容的Frameworks 元素

excel - 用于部署和更新文档级 VSTO 插件(包括文档)的解决方案

vb.net - 使用VB.NET发布ClickOnce安装报错 "Exception reading from manifest"