Asp.net WAP转换期间无法解析.aspx

Asp.net WAP转换期间无法解析.aspx,asp.net,namespaces,web-site-project,web-application-project,Asp.net,Namespaces,Web Site Project,Web Application Project,我已将网站文件复制到一个新的WAP项目中。确保它能够编译,并且确实可以。我遇到的问题是,当我执行转换为WAP时,它无法解析.aspx页面。错误只是说它无法解析.aspx页面 当我查看其中一个.aspx页面时,我有page指令,但它无法识别该名称空间。这就是我在新WAP项目中使用的名称空间 我的代码隐藏页都具有Instant.Web名称空间,并且项目属性的主名称空间设置为Instant.Web 例如,当我转到一个页面时,它不会识别我继承的Web.Attachment部分 以下是一个例子(对隐私的措

我已将网站文件复制到一个新的WAP项目中。确保它能够编译,并且确实可以。我遇到的问题是,当我执行转换为WAP时,它无法解析.aspx页面。错误只是说它无法解析.aspx页面

当我查看其中一个.aspx页面时,我有page指令,但它无法识别该名称空间。这就是我在新WAP项目中使用的名称空间

我的代码隐藏页都具有Instant.Web名称空间,并且项目属性的主名称空间设置为Instant.Web

例如,当我转到一个页面时,它不会识别我继承的Web.Attachment部分

以下是一个例子(对隐私的措辞稍作修改):

SomeAspxPage.aspx

<%@ Page Language="C#" Inherits="Instant.Web.Attachment" Codebehind="SomeAspxPage.aspx.cs" %>
<asp:Content ID="ctlContent" ContentPlaceHolderID="ctlContentPlaceHolder" runat="Server">
    <Frm:Attachment ID="Attachment1" runat="server"/>
</asp:Content>
另外,由于某些原因,代码隐藏中的UserPage没有显示为一个类,您可以右键单击并转到源代码。不确定原因,因为该程序集肯定在此WAP项目中,并且它是Instant.InstantForm的最新程序集

  • 不知道它是否与您的实际情况相关,但对于您的示例,您有一个属性
    codebeahind=“Attachment.aspx.cs”
    ,用于查找文件Attachment.aspx.cs,但文件名为SomeaspxPage.aspx.cs。通常,“无法解析文件”表示向导无法找到文件背后的匹配代码,并且无法转换页面

  • 顺便说一句,另请注意:

  • 在转换项目文件之前,请添加对Web的引用 Bin文件夹中存在的程序集的应用程序项目 帮助防止错误


    您的描述中不清楚是否已将引用添加到自定义用户页。如果没有,并且该程序集只是复制到WAP项目的某个地方,则也可能导致转换错误。

    尝试向项目中添加新的空白页,检查是否可以解析该页

    然后在小步骤中添加功能,直到得到与给出错误的页面相同的页面


    这应该允许您确定问题所在。

    对于WAP站点,我将完全删除ASPX布局(第一行除外,这是必需的),并使用
    响应输出内容。在codebehind中写入

    除了简单之外,这还提供了更干净的输出和对流程的粒度控制

    根据其中一条注释中的此引号
    警告126无法识别的标记前缀或设备筛选器“asp”
    ,听起来您的CSProj文件中缺少程序集引用

    验证项目的“引用”文件夹中是否有System.Web

    如果存在该解决方案,请验证它所从的版本(目录)是否与您的项目所针对的.NET版本相同。

    保存并关闭该解决方案,然后重新打开并重试


    我的理论是VS正在缓存一些东西,需要重新加载项目。

    不,这只是一个发布错误。我为这个线程重命名了页面,但忘了在那里也重命名它。不是真正的代码问题,只是在这里发布问题。我已经添加了对WAP项目bin的引用,这些引用是必需的,因此它们已经添加到该web项目中。只是想澄清一下:您在哪一点上遇到了问题?你在转化的那一刻这么说。但通常网站项目中的页面具有属性CodeFile,在您的示例中,它已经是codebeard(如果转换成功,将自动重命名)。是否已手动重命名此属性?还有一件事:您是否尝试过用文件名为类命名,例如
    Inherits=“Instant.Web.Attachment”codebhind=“Attachment.aspx.cs”
    ?因为在这种情况下,我也遇到了不同名称的问题。您是否尝试过使用从常规
    System.Web.UI.page
    继承的codebehind类转换页面?如果您的转换过程说它无法解析特定的.aspx页面(通常不是所有页面)您可以尝试。看起来主要问题是警告126无法识别的标记前缀或设备筛选器“asp”。例如,它无法识别下一步要检查的是,在IISdidn中是否启用了asp,这无关紧要……这些都不重要。IIS 7默认情况下启用.aspx。这与VS无法解析标记的原因无关。请检查是否已引用所有必需的dll。有时项目会编译,但由于缺少一些扩展方法而无法工作。同时检查您正在引用的dll的.net版本。是的,它正在引用所有需要的dll,因为整个解决方案编译良好。我所做的只是将它转换成VS2010,它是一个C#的VB.NET项目。虽然所有的引用都在那里,但在这里似乎没有帮助,因为问题在于将ASPX和codebehind文件链接在一起,而您的方法仍然需要这样做。那么,您是否将视图/演示/布局与业务逻辑完全交织在一起?这与ASP.NET WebForms、MVC或网页的设计是对立的。整个解决方案都经过编译,所以我没有丢失任何DLL。是的,系统是有网络的,否则这个东西就不会编译了。
    namespace Instant.Web
    {
        public partial class Attachment : Instant.InstantFrm.Pages.Base.UserPage
        {
    
        }
    }