WSS 2.0 : Getting "Assembly, TagPrefix, and Namespace are required on Register directives" error message

When you edit a site in front page and and specify the register tag for the user control as <%@ Register TagPrefix="AO" TagName="Header" Src="~/usercontrol.ascx" %>, you will get the "Assembly, TagPrefix, and Namespace are required on Register directives" error message.

The behavior is as per the design of collaboration between FrontPage and SharePoint. We know when we edit a SharePoint site through front page, the details are getting stored into the SharePoint database, called ghosting/unghosting problem. When we specify the “virtual directory” path in the register tag, FrontPage may not able to fetch the .ascx control file detail and store the control details into database. So as per the design when we edit the page in front page, we cannot specify the “virtual directory” path in the register tag. If it’s a regular asp.net application then everything will works. But when SharePoint comes into picture, the issue will appear. If you edit the default.aspx page (C:\program files\common files\microsoft shared\web server extenstions\60\template\1033\sts) in notepad, this will work, because the details are not stored into the database.

 

· Workaround 1

-Modify the default.aspx (sts folder or other site definition folder files where you want to specify the control) page in notepad.

-Place the register tag, and other required tags to specify the control

 

Implication : All sites will get affect, since we are modifying the site definition files. If you want to specify the information only to single site, then this workaround may not be feasible. You may have to edit the page in front page. In that case, you may follow the second workaround

 

· Workaround 2

-Create a signed webcontrol library, and install the assembly into GAC.

-Open the site in front page, add the register tag with Assembly, namespace, tagprefix and publickey token details