如何在其他asp.net项目中使用用C#编写的DLL

本文关键字:DLL 其他 asp 项目 net | 更新日期: 2023-09-27 18:22:17

我有一个名为common.cs的文件,其中包含像这样的常用函数

    public int GetColumnIndexByNameTemplateField(GridViewRow row, string SearchColumnName)
{
    int columnIndex = 0;
    foreach (DataControlFieldCell cell in row.Cells)
    {
        if (cell.ContainingField is TemplateField)
        {
            if (((TemplateField)cell.ContainingField).HeaderText.Equals(SearchColumnName))
            {
                break;
            }
        }
        columnIndex++;
    }
    return columnIndex;
}

现在我想将common.cs文件更改为common.dll,我创建了另一个类库项目,在该项目中,我从common.cs中复制了所有代码,添加了必要的引用并构建了它来生成dll文件,现在我将该dll文件从项目调试目录粘贴到我的asp.net项目的bin目录中,该项目已经在使用common.cs,但每当我尝试使用导入该dll时。

[DllImport("common.dll")]
public static extern String NewString(String x);

其中NewString是另一个函数,我得到了这个错误。

在DLL"common.DLL"中找不到名为"NewString"的入口点。

我已经查看了stackoverflow上已经发布的问题,以及互联网上的其他指南,这些指南告诉我如何制作和使用dll,但我不知道为什么我会出现这个错误,而且大多数指南都显示了用C++编写的dll,因为我的dll是用C#编写的,他们还告诉使用__declspec(dllexport),它告诉函数已经准备好导出或类似的东西,但我想我不能在C#dll中使用它。

我认为这是一个基本的问题,但这是我第一次在C#中创建dll,所以请帮助我。

谢谢。

如何在其他asp.net项目中使用用C#编写的DLL

Ahmed如果您想将任何项目转换为库(.dll),请双击解决方案资源管理器中的"properties"文件夹。单击项目类型的下拉列表并选择"类库",然后单击"构建",重新生成解决方案以重新编译到.dll中。

请注意,右键单击解决方案并单击"添加项目",可以在同一解决方案中创建新的ASP.NET项目。或者,您可以打开Visual Studio的新实例。打开ASP.NET项目后,右键单击引用,然后单击添加引用。单击"浏览"选项卡,导航到包含.dll的文件夹并添加它。不要忘记,在.dll中定义的任何类都必须标记为公共类,否则它们在其他程序集中将不可见。另外,不要忘记在.中定义类的名称空间的using语句

当您单击"运行按钮"(绿色箭头)时,它将始终运行解决方案资源管理器中粗体的项目。如果.dll是粗体的,那么您将得到一个错误,即您不能运行类库,但必须将其更改为控制台应用程序。如果它是一个控制台应用程序,那么它必须定义一个静态void Main()函数,以便知道从哪里开始。您可以将任何项目设置为启动项目,方法是在解决方案资源管理器中右键单击该项目,然后单击"设为启动项目"。

如果您希望在解决方案中运行程序,但不想将其设置为启动程序,则可以右键单击,转到调试并运行。在一个解决方案中组织类似的项目可以使维护它们变得更容易。

希望这能有所帮助。

您不需要使用DllImport。由于common.dll是一个托管程序集,您只需将其作为引用添加到尝试使用NewString的ASP.NET项目中即可。

如果您的程序集是用c#编写的,则不需要dllimport。而是选择添加引用,如so-msdn条目(选择浏览

将dll粘贴到网站的Bin文件夹中,您可以通过在文件类顶部"使用"来使用它,然后您将获得dll的所有方法。