小编Sci*_*sol的帖子

“在 DLL 'SQLite.Interop.dll' 中找不到名为 'sqlite3_open_interop' 的入口点。”

我正在使用 C# 应用程序尝试连接到 SQLite 数据库。该应用程序使用库 System.Data.Sqlite,版本 108。在 Visual Studio 2017 中,我的解决方案配置是调试,我的解决方案平台是任何 CPU。每当我构建并运行应用程序时,我都会收到以下运行时异常:

在此输入图像描述

异常未处理,应用程序终止。

当然,我的 bin\Debug 目录中有一个 SQLite.Interop.dll 文件。(如果没有,例外情况会有所不同。)具体来说,有两个,每个都位于各自名为 x64 和 x86 的子目录中。我的假设是正在使用 x86 目录中的文件,因为解决方案平台设置为任何 CPU。SQLite.Interop.dll 程序集的版本与 System.Data.SQLite.dll 的版本匹配,为 1.0.108.0。

当我使用以下命令询问程序集时:

dumpbin /exports SQLite.Interop.dll
Run Code Online (Sandbox Code Playgroud)

我确实在 x64 版本的程序集的输出中找到了以下行:

175   AE 00040750 sqlite3_open_interop
Run Code Online (Sandbox Code Playgroud)

但在 x86 版本的输出中我没有。相反,我找到了这一行:

175   26 00037F10 _sqlite3_open_interop@20
Run Code Online (Sandbox Code Playgroud)

很接近,但不匹配。所以程序集确实没有暴露sqlite3_open_interop这样的方法。

我尝试了将解决方案平台更改为 x64 的明显解决方案,但该更改导致了另一个异常 (BadImageFormatException),我不太想应对它。

我尝试删除对 System.Data.SQLite 的引用并使用 Nuget 添加最新版本 1.0.111.0,然后清理并重建解决方案,但都没有效果。同样的问题再次出现。

有人能建议解决这个问题吗?我相信 SQLite 被广泛使用,所以我必须认为有一种方法可以解决它。

*Edit1:我在我的家用计算机上尝试了这个项目,并观察到两个 SQLite.Interop.dll 文件之间存在相同的差异。x64 版本有一个 sqlite3_open_interop,而 x86 版本有一个 _sqlite3_open_interop@20。然而问题并没有出现在那里。所以显然这个被破坏的名字“问题”是一个转移注意力的话题。我仍然对解决这个问题非常感兴趣,并且感谢从事 System.Data.Sqlite 工作的人的帮助!

c# sqlite system.data.sqlite

6
推荐指数
2
解决办法
8645
查看次数

用于Asp.Net Core的IIS Express无法在调试模式下在Chrome中运行

我一直在使用Visual Studio 2017社区版学习ASP.NET Core.当我运行项目时,我通常会单击IDE顶部中心的IIS Express按钮.此操作会在Chrome(我的默认浏览器)中启动一个新窗口,到目前为止,该窗口运行良好.

然而,今天它无法加载应用程序.浏览器显示"您的应用程序正在启动..."并保持该状态.最后,我关闭窗口,发现应用程序仍在VS中运行.我单击停止调试按钮,一分钟后给我以下消息:

Debugging is being stopped but is not yet complete. You can force debugging to stop immediately, but any process being detached may be terminated instead. 

This window will automatically close when the debugging has completely stopped. 
Run Code Online (Sandbox Code Playgroud)

我点击了一个Stop Now按钮.当我这样做时,诊断中心的输出是:

Cannot access a disposed object.
Object name: 'StandardClientTransportConnection'.
Run Code Online (Sandbox Code Playgroud)

我有各种解决方法.我可以运行这个项目:

  • 无需在任何浏览器中调试.
  • 在IE或Edge中进行调试.
  • 通过单击项目名称而不是IIS Express,我认为它在常规IIS中运行应用程序.

但我想了解我的问题.我尝试过以下方法:

  • 删除我的个人资料下的.nuget文件夹.
  • 删除Documents文件夹中的IIS Express文件夹.
  • 清除Chrome中的浏览器数据.

一切都没有效果.

google-chrome iis-express asp.net-core

5
推荐指数
1
解决办法
3830
查看次数

在 Visual Studio 中手动安装 Bootstrap

Bower 显然不再适用于将 Bootstrap 安装到 Visual Studio 项目中:

https://developercommunity.visualstudio.com/content/problem/134643/bootstrap-cannot-be-installed-via-bower.html

我正在 Visual Studio 15.4 中做一个 ASP.Net Core 2 MVC 项目。

对我来说似乎很简单,我只需下载 Bootstrap 并将其放入我的项目中,然后使用链接标记以正常方式从我的视图中引用 bootstrap.css 文件。

我下载了 bootstrap-4.0.0-alpha.6.dist 并将其放在我项目的 wwwroot 文件夹中。该文件夹绝对已解压缩,我认为它在哪里。下一层是一个名为 css 的文件夹,该文件夹中存放着 bootstrap.css。

然后我有一个这样的普通视图:

<!DOCTYPE html>
<html>
<head>
    <title>Test Page</title>
    <link rel="stylesheet" href="~/bootstrap-4.0.0-alpha.6-dist/css/bootstrap.css" />
</head>
<body>
    <h3 class="text-center">Hello, World!</h3>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

并且页面似乎找不到样式表。当我运行项目时,没有应用 Bootstrap 类。当我单击页面的查看源选项并单击样式表的地址时,它确实告诉我它找不到样式表:

No webpage was found for the web address: http://localhost:62732/bootstrap-4.0.0-alpha.6-dist/css/bootstrap.css
HTTP ERROR 404
Run Code Online (Sandbox Code Playgroud)

我已经尝试了我能想到的地址的所有变体,例如:

<link rel="stylesheet" href="../wwwroot/bootstrap-4.0.0-alpha.6-dist/css/bootstrap.css" />
Run Code Online (Sandbox Code Playgroud)

但没有效果。我也在三种不同的浏览器中得到了这个结果。

我在 Visual Studio 之外用普通的文本文件做了这件事,然后让它工作。关于 MVC 视图如何解析样式表的位置,我一定有些不明白。

有谁知道我做错了什么,或者有更好的方法来解决这个问题?

asp.net visual-studio twitter-bootstrap

3
推荐指数
1
解决办法
2万
查看次数