0

我正在尝试将预编译的 dll 添加到我的 webform 项目中。dll 是一个预编译的用户控件(不是服务器控件)。当我在该项目的 Web 表单开发过程中测试用户控件时,一切正常。然后,我删除了 Web 表单,以便只保留用户控件并将其发布到文件中。接下来,在我想使用它的项目中,我添加了对 dll 的引用,并确保在使用项目的 bin 文件夹中有它的副本。

我不确定,但我认为我的问题是准确理解 web.config (或注册标签)中的内容,这就是我对注册标签的内容:

<add assembly="CustomStatusNavigator" namespace="CustomStatusNavigator" tagPrefix="Custom" />

... 其中“CustomStatusNavigator 是用户控件项目的名称和包含我的 .cs 代码的命名空间。

我得到的错误是

The type or namespace name 'CustomStatusNavigator' does not exist in the namespace 'CustomStatusNavigator' (are you missing an assembly reference?)

我在做一些公然错误的事情吗?自定义 USER 控件可以转换为 dll 并像自定义控件一样使用是否只是一个神话?感谢任何帮助/指针,良好的链接。我已经用谷歌搜索了这个。

4

1 回答 1

1

请参阅自定义控件不同和用户控件不同。

当我们创建用户控件时,范围仅限于该应用程序。假设我们正在创建一个名为“Test.ascx”的用户控件。通过注册到页面指令的正下方,它可以在整个应用程序中使用。请记住。它不会创建任何 .dll 文件,它必须只是 .ascx。

在自定义控件的情况下,您可以借助可用的服务器控件创建自己的控件。您可以编译它们,此时将生成相同的 dll 文件。

此 dll 文件在其他项目中也很有用,但为此您必须将它的引用添加到任何新项目中。

添加它的引用后,您可以在工具下看到它,并且可以在想要使用它时简单地拖放它。

于 2013-09-26T06:01:20.573 回答