1

IronPython アプリケーションでdblinqを使用しようとしていますが、開始する際に問題が発生しています。clr.AddReference() を使用して dblinq クラスをインポートしようとすると、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
4

1 に答える 1

2

DbLinq のように依存関係があるか、いくつかの DLL/モジュールに分割されているライブラリの場合、プログラムでその場所を追加して、ランタイムが必要なすべてのファイルを見つけられるようにすることができます。

import sys
sys.path.append(r"C:\Temp\DbLinq-0.20.1")

その後、必要なすべてのアセンブリを通常どおり参照できます。

clr.AddReference("DbLinq")

プライマリ アセンブリが 1 つある場合は、clr.AddReferenceToFileAndPath (絶対パスを指定) を使用して、参照されているアセンブリの場所を暗黙的にパスに追加することもできます。

clr.AddReference(r"C:\Temp\DbLinq-0.20.1\DbLinq.dll")
于 2012-04-25T20:24:19.413 に答える