0

我有一个 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”

(结果出现了大约五百个编译错误)。目录 Common\UserControls 已全部移动,没有其他任何更改。有谁知道问题可能是什么以及我可能会做些什么?

4

1 回答 1

0

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

于 2012-07-26T09:26:44.100 回答