【发布时间】:2012-04-25 15:09:21
【问题描述】:
我正在尝试在 IronPython 应用程序中使用 dblinq,但在开始使用时遇到了一些问题。尝试导入 dblinq 类时,使用 clr.AddReference() 似乎看不到 dblinq。
我可以构建但不能访问库
import clr
clr.AddReference("DbLinq")
clr.AddReference("System.Data.Linq")
from System.Data.Linq import DataContext
exit = raw_input("press any key to quit")
1: 我的 dblinq 源位于名为 Resources 的子文件夹中
clr.AddReferenceToFileAndPath("Resources/DbLinq.dll") => 找不到文件
clr.AddReference("DbLinq") => 无法添加对 dblinq 的引用
clr.AddReferenceToFileAndPath("C:/Development/DBLinq2/Dblinq.dll" => 成功
但仍然无法使用使用from DbLinq import ...的类
解决方案
import clr
clr.AddReferenceToFileAndPath("%s\Resources\DbLinq.dll" %os.getcwd())
clr.AddReference("DbLinq")
from Npgsql import *
from DbLinq import Data
【问题讨论】:
-
也许您缺少其他一些依赖项。尝试在 DbLinq.dll 上运行
Dependency Walker(dependencywalker.com) 看看是否会产生一些有趣的东西... -
嗯,IESHIMS.dll 是您不必担心的依赖项之一...您是否在
Resources/DbLinq.dll(应该)或C:\Development\DBLinq2...(该目录可能包含其他Resource目录中需要的dll) -
两者都做了,Resources 包含 Development\Dblinq2 所做的所有文件
-
所以您不能使用/导入库存 dblinq 类型或基于此的代码吗?您是否尝试将 dblinq 目录添加到路径中?
import sys sys.path.append(r"C:\Temp\DbLinq-0.20.1") -
您将 dblinq.dll 本身附加到了路径中。您能否再次尝试指向包含 dblinq 附带的所有 dll 的文件夹?你还需要
clr.AddReference("DbLinq")
标签: visual-studio-2010 linq ironpython dblinq