gpt4 book ai didi

sqlite - 从 SharpDevelop 中的 tt 模板访问 SQLite 数据库

转载 作者:行者123 更新时间:2023-12-03 17:53:47 28 4
gpt4 key购买 nike

我想开发一个 .tt 模板来从 SQLite 数据库生成 POCO。

我使用 SharpDevelop 4.4。

这是我到目前为止的.tt...

<#@ template hostspecific="true" language="C#" #>
<#@ output extension=".txt" #>
<#@ assembly name="System.Data" #>
<#@ assembly name="System.Data.SQLite" #>
<#@ import namespace="System.Data" #>
<#@ import namespace="System.Data.SQLite" #>
<#@ import namespace="System.IO" #>

<#
using (SQLiteConnection db =
new SQLiteConnection
(string.Format("Data Source={0}",
Path.Combine(Path.GetDirectoryName(Host.TemplateFile),
"Test.db"))))
{
db.Open();
}
#>

我将 System.Data.SQLite.1.0.92.0 NuGet 包添加到我的项目中,以使 SQLite 正常工作。

当我运行我的模板时,出现以下错误:
Error running transform: System.DllNotFoundException: Unable to load DLL 'SQLite.Interop.dll': Le module spécifié est introuvable. (Exception from HRESULT: 0x8007007E)
at System.Data.SQLite.UnsafeNativeMethods.sqlite3_config_none(SQLiteConfigOpsEnum op)
at System.Data.SQLite.SQLite3.StaticIsInitialized()
at System.Data.SQLite.SQLiteLog.Initialize()
at System.Data.SQLite.SQLiteConnection..ctor(String connectionString, Boolean parseViaFramework)
at System.Data.SQLite.SQLiteConnection..ctor(String connectionString)
at Microsoft.VisualStudio.TextTemplating.GeneratedTextTransformation5e95cd16.TransformText()
at Mono.TextTemplating.CompiledTemplate.Process()

抱歉,法语消息...“Le module spécifié est introuvable”的意思是“找不到指定的模块”...

看起来 SharpDevelop 设法从我的项目中找到 System.Data.SQLite.dll 文件,但未能找到它的原生对应 SQLite.Interop.dll ......

我怎样才能让 SharpDevelop 找到 DLL ???

有什么想法吗?

一旦我弄清楚如何让 SharpDevelop 找到 DLL 并连接到我的数据库,模板的其余部分应该很容易实现......

感谢您的帮助!

吉斯

最佳答案

SharpDevelop 将找到您的 System.Data.SQLite.dll,因为您的项目将引用它。

我的第一个想法是:

对于 SQLite.Interop.dll,您可以在项目中添加对它的引用,或者如果您不想这样做,您可以指定 .dll 的路径。您应该能够执行以下操作:

<#@ assembly name="$(SolutionDir)packages\System.Data.SQLite.Core.1.0.92.0\content\net45\x86\SQLite.Interop.dll" #>

不幸的是,这不起作用,因为 SQLite.Interop.dll 不是 .NET 程序集。因此,一种解决方法/hack 是通过将 SQLite.Interop.dll 放在路径上来使 SharpDevelop 可以使用它。最简单的方法是将其复制到 SharpDevelop 的 bin 文件夹中:
C:\Program Files (x86)\SharpDevelop\4.4\bin

关于sqlite - 从 SharpDevelop 中的 tt 模板访问 SQLite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23146198/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com