无法使用ASP.NET IronPython中的dll文件中的函数

时间:2010-02-19 15:11:33

标签: asp.net ironpython

我将这样的文件编译成dll文件并放在bin文件夹中

1

Imports System
Imports System.Web

Namespace Conexiones       
     Public Class sql_conexiones
       Shared Sub consulta..
           ...

通过

from Conexiones import *

从.aspx.py文件中可以正常工作。

我在APP文件中的另一个文件中有一个py文件(没有声明名称空间)

2

import clr
clr.AddReference('System')
import System
clr.AddReference('System.Data')
from System.Data import * 
clr.AddReference('System.Web')
import System.Web

def consulta ...

通过

from funciones import * 

从.aspx.py文件中可以正常工作。

现在我想在dll文件中使用funciones中的代码。我在bin文件夹中有funciones.dll,我有

from funciones import * 
<。>在.aspx.py。

我得到“没有名为funciones的模块”可能我必须明确添加dll吗?我做了

clr.AddReference("funciones.dll") 
from funciones import *

我得到“无法添加对程序集funciones.dll的引用”

我的问题是,如何在一个代码类似于#2的文件中使用函数,放在ASP.NET IronPython的bin文件夹中的dll文件中?我在#1和#2之间看到的唯一区别是#1具有声明的命名空间

1 个答案:

答案 0 :(得分:0)

我认为你有两个选择:

  1. 尝试使用AddReferenceToFile(str)AddReferenceToFileAndPath(str)。有关说明,请参阅此mail

  2. bin\插入sys.path,然后尝试添加引用。


  3. <强>加了:

    编译IronPython代码的想法如下:

    您有一个文件func.py

    def one():
        return 1
    

    您使用pyc.py编译它:

    C:\IronPython-2.6\ipy.exe C:\IronPython-2.6\Tools\Scripts\pyc.py /out:funciones /target:library func.py
    

    您在另一个脚本中使用它:

    import clr
    clr.AddReference('funciones')
    import func
    print func.one()
    

    我希望您看到funcfunciones之间的区别; - )