我有一个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已完整移动,并且没有其他任何内容已更改。有谁知道问题可能是什么以及我可能做些什么呢?
答案 0 :(得分:0)
我通过使用SubVersion将代码包含在旧位置来解决这个问题,即使它并非“真正”存在。我不太喜欢这个,因为它似乎是一个聪明聪明的技巧和未来维护的陷阱。但如果它不在项目的下面,它将没有该目录,如果我在那里放置一个,它将不会遵循快捷方式。