Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Windows IoT上使用Sqlite和asp.net核心应用程序_C#_Sqlite_Raspberry Pi_Windows Iot Core 10 - Fatal编程技术网

C# 在Windows IoT上使用Sqlite和asp.net核心应用程序

C# 在Windows IoT上使用Sqlite和asp.net核心应用程序,c#,sqlite,raspberry-pi,windows-iot-core-10,C#,Sqlite,Raspberry Pi,Windows Iot Core 10,我有一个Asp.netCore应用程序 我将其输出设置为exe 然后我像这样编译它: dotnetpublish-rwinarm 然后,我在运行Windows 10 IoT的Raspberry Pi上打开网络共享 我将桌面上已发布文件夹中的所有内容复制到raspberry pi上的一个文件夹中 然后,我使用powershell启动此exe 然后我从桌面浏览到Raspberry Pis Ip地址 我的页面加载良好 如果我现在导航到一个我知道将从我的sqlite db中获取记录的页面,则会出现以下错

我有一个Asp.netCore应用程序

我将其输出设置为exe

然后我像这样编译它:

dotnetpublish-rwinarm

然后,我在运行Windows 10 IoT的Raspberry Pi上打开网络共享

我将桌面上已发布文件夹中的所有内容复制到raspberry pi上的一个文件夹中

然后,我使用powershell启动此exe

然后我从桌面浏览到Raspberry Pis Ip地址

我的页面加载良好

如果我现在导航到一个我知道将从我的sqlite db中获取记录的页面,则会出现以下错误:

阅读错误告诉我(我认为)我使用了错误的dll

目前,我正在使用Sqlite的DLL,这是我在之前的uwp应用程序中使用的DLL,我也将其部署到raspberry pi box中(这很有效)

我在谷歌上搜索过,它告诉我使用uwp DLL。我所能想到的是,因为我使用arm开关编译它,所以在Pi框上使用它时,我需要使用sqlite dll

我是对的吗?如果是,我在哪里可以得到arm sqlite dll

如果我错了,我该怎么办

我也在使用.netcore 2.1

以下是我正在使用的图书馆:

谢谢

更新

根据丽塔的回答,我得到了一个不同的错误,那就是:


此问题是由于asp.net核心应用程序发布文件夹中缺少e_sqlite3.dll造成的。您可以在Github上找到类似的问题,如

有一个变通办法,我测试的树莓Pi与Windows物联网核心,它为我工作

在Raspberry Pi上的\Windows\system32中找到winsqlite3.dll,并将此文件复制到应用程序发布文件夹,然后将此文件重命名为e\u sqlite3.dll。那就行了

只需安装Microsoft.Data.Sqlitenuget软件包

.csproj文件内容:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.Data.Sqlite" Version="2.1.0" />
  </ItemGroup>

</Project>

netcoreapp2.1

如果您的最小版本至少等于16299,请尝试使用
SQLitePCLRaw.bundle\u green
NuGet包而不是SQLite libs/VS扩展。这将尝试加载Windows本身附带的SQLite版本(因此,如果它实际包含在IoT版本D;,则应可用于ARM IoT),而不是您的应用程序附带的版本。@JohnnyWestlake感谢您的回复。我已经有了。正如您在我更新的问题中看到的,我在绝望中包含了很多sqlite库。我最初并没有包括所有这些,所以,现在我想知道我是否应该删除其中的一些,以正确地测试您的建议?感谢对我有效的只有这两个包:
SQLitePCLRaw.Core
SQLitePCLRaw.provider.winsqlite3.uwp10
,然后调用
SQLitePCL.raw.SetProvider(新的SQLite3Provider\u winsqlite3())在使用SQLite执行任何操作之前。但是,这可能不起作用,因为您不在UWP中。它还有一个.NET 4.5版本,但没有.NET Core软件包=[但值得尝试UWP软件包-我找不到它的源代码,但它可能是.NET Core友好的。@JohnnyWestlake我确实尝试过使用Core的UWP,但它不起作用。我删除了所有sqlite lib,只安装了raw和raw_green。但是我的标签像:[PrimaryKey]etc未被识别,因此无法构建和测试看起来很有希望!我将很快进行测试。将返回给您。非常感谢!:)没有工作;(我很失望。但这次我遇到了一个不同的错误,我将用它更新我的问题。我只是正确地阅读了你的答案。我最初是从我的桌面windows\system文件夹而不是从pi硬盘复制了该dll。正如你所指示的那样,一切正常!!我可以给你双倍的分数。我被迫创建了一个b后台工作人员,并使用它与数据库对话,来回传递信息。很高兴我现在不必这样做:)