移动代码会导致“无法识别的标记前缀或设计过滤器”错误

时间:2012-07-25 09:33:45

标签: c# asp.net componentart

我有一个Visual Web Developer 2010 Express Edition Web应用程序。 Default.aspx的开头如下: -

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="MixedZone.Default"%>
<%@ Register assembly="ComponentArt.Web.UI"
             namespace="ComponentArt.Web.UI"
             tagprefix="ComponentArt" %>
<%@ Register TagPrefix="MixedZone"
             TagName="NumberInput"
             Src="Common/UserControls/NumberInput.ascx" %>

NumberInput.ascx的开头如下: -

<%@ Control Language="C#" AutoEventWireup="True" CodeBehind="NumberInput.ascx.cs" Inherits="MixedZone.UserControls.NumberInput" %>
<%@ Register assembly="ComponentArt.Web.UI" namespace="ComponentArt.Web.UI" tagprefix="ComponentArt" %>
<asp:Literal ID="Literal1" runat="server" Visible="False"></asp:Literal>
<ComponentArt:NumberInput ID="niNumberInput"
                          runat="server"
                          CssClass="valid"
                          ...etc

到目前为止,这么好。但我希望将此代码移动到其他目录。我这样做(手动编辑csproj文件)并相应地更改aspx和aspc文件: -

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="MixedZone.Default"%>
<%@ Register assembly="ComponentArt.Web.UI"
             namespace="ComponentArt.Web.UI"
             tagprefix="ComponentArt" %>
<%@ Register TagPrefix="MixedZone"
             TagName="NumberInput"
             Src="../MixedZone/Common/UserControls/NumberInput.ascx" %>

<%@ Control Language="C#" AutoEventWireup="True" CodeBehind="../MixedZone/Common/UserControls/NumberInput.ascx.cs" Inherits="MixedZone.UserControls.NumberInput" %>
<%@ Register assembly="ComponentArt.Web.UI" namespace="ComponentArt.Web.UI" tagprefix="ComponentArt" %>
<asp:Literal ID="Literal1" runat="server" Visible="False"></asp:Literal>
<ComponentArt:NumberInput ID="niNumberInput"
                          runat="server"
                          CssClass="valid"
                          ...etc

但是当我这样做时,ComponentArt:标有绿色下划线和消息

  

无法识别的代码前缀或设备过滤器'ComponentArt'

(结果会出现大约500个编译错误)。目录Common \ UserControls已完整移动,并且没有其他任何内容已更改。有谁知道问题可能是什么以及我可能做些什么呢?

1 个答案:

答案 0 :(得分:0)

我通过使用SubVersion将代码包含在旧位置来解决这个问题,即使它并非“真正”存在。我不太喜欢这个,因为它似乎是一个聪明聪明的技巧和未来维护的陷阱。但如果它不在项目的下面,它将没有该目录,如果我在那里放置一个,它将不会遵循快捷方式。