我正在尝试将预编译的dll添加到我的webform项目中。 dll是预编译的用户控件(不是服务器控件)。当我在开发期间在该项目的webform上测试用户控件时,一切正常。然后我删除了Web表单,以便只保留用户控件并将其发布到文件中。接下来,在我想要使用它的项目中,我添加了对dll的引用,并确保在使用项目的bin文件夹中有它的副本。
我不确定,但我认为我的问题是准确理解web.config(或者注册标记)中的内容,这就是我对Register标记的看法:
<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并像自定义控件一样使用,这只是一个神话吗?感谢任何帮助/指针,良好的链接。我已经用Google搜索了这个。
答案 0 :(得分:1)
请参阅自定义控件不同,用户控件不同。
当我们创建用户控件时,范围仅限于该应用程序。假设我们正在创建一个名为&#39; Test.ascx&#39;的用户控件。它可以在整个应用程序中使用,只需在页面指令下面注册即可。记住。它不会创建任何.dll文件,它必须只是.ascx。
如果是自定义控件,您可以借助可用的服务器控件创建自己的控件。您可以编译它们,此时将生成相同的dll文件。
这个dll文件在其他项目中也很有用,但为了这个目的,你必须将它的引用添加到任何新项目中。
添加它的引用后,您可以在工具下看到它,并且只要您想使用它就可以拖放它。