如何删除ASP.NET Designer.cs文件?

如何删除ASP.NET Designer.cs文件?,asp.net,visual-studio,partial-methods,Asp.net,Visual Studio,Partial Methods,我以前在没有.designer.cs文件的VS项目上工作过 现在我在另一台计算机上启动了一个新项目,我无法摆脱designer.cs文件。真让我讨厌。我真的需要它吗?我如何才能移除它?必须在某个地方设置。您处理的是web应用程序,而不是网站() 是的,在web应用程序的上下文中,您确实需要它们。是的!你可以移除它们……以下是如何 如何从WEB应用程序中删除DESIGNER.CS页面 在Visual Studio(v.2015及更早版本)中,经过大量的折磨和测试,我终于找到了一种解决方法。如果有人

我以前在没有.designer.cs文件的VS项目上工作过


现在我在另一台计算机上启动了一个新项目,我无法摆脱designer.cs文件。真让我讨厌。我真的需要它吗?我如何才能移除它?必须在某个地方设置。

您处理的是web应用程序,而不是网站()


是的,在web应用程序的上下文中,您确实需要它们。

是的!你可以移除它们……以下是如何

如何从WEB应用程序中删除DESIGNER.CS页面

在Visual Studio(v.2015及更早版本)中,经过大量的折磨和测试,我终于找到了一种解决方法。如果有人在Visual Studio中的Web应用程序项目中使用designer.cs页面,此解决方案将允许您快速删除所有应用程序编译错误,然后从项目中完全删除designer.cs页面

首先了解以下内容:

Web应用程序项目使用Visual Studio自动生成的designer.cs页面(分部类),这些页面与Web应用程序模型支持的Web应用程序中内置的设计工具相关联。我称之为傻瓜网站。我找不到任何设置或方法来关闭创建分部类和designer.cs页面,因为它们通常是不必要的代码,与IDE的联系比应用程序的功能更紧密。所有的部分类都被编译成一个类。Web应用程序通常通过设计提前预编译或构建,这些dll被推送到bin文件夹中

网站项目不使用designer.cs文件,并且与IDE的关联较少。它们允许对类结构进行更清晰的编码。它们也使用分部类。但网站项目通常在运行时编译

解决方案-如何在Visual Studio中从Web应用程序项目中删除“…designer.cs”错误和文件

除非您希望在Visual Studio中将web项目从应用程序转换为web站点模型,否则下面的解决方案允许您按原样运行项目,但与web站点一样,您可以将大部分或所有designer.cs部分类控件引用从该文件移到主网页部分类文件中。如果其他开发人员正在共享这些设计器文件并将控件添加到页面,而忘记在特定页面上使用此解决方案,则它也会删除所有错误,并且不会干扰Visual Studio重新创建这些设计器文件

  • 在前端.aspx页面顶部的@PAGE指令中,将“CodeBehind”更改为“CodeFile”。确保它仍然引用相同的.cs代码或类文件

  • 将“CodeFileBaseClass”属性添加到网页中的同一@Page指令,并让它使用路径中的任何名称空间访问上面相同的.cs的完全限定路径

  • 确保使用的“继承”属性与“CodeFileBaseClass”的路径相同

  • 对于web应用程序中的每个网页,您都应该具有以下属性,这些属性的格式如下:

    <%@ Page Language="c#" CodeFile="index.aspx.cs" CodeFileBaseClass="YourNameSpace.index" 
     Inherits="YourNameSpace.index" %>
    
    解决这个问题的关键是主网页中@Page指令中的CodeFileBaseClass和CodeFile属性。这可以防止web页面中的新成员引用和控件由Visual Studio IE自动生成,并作为存根固定在设计器页面的分部类中(对于我来说,如果您希望在单个方便的区域中完全控制这些字段,这是没有用的)


    注意:如果以后通过在VS中选择项目再次为项目重新生成designer.cs文件,则在顶部菜单中选择项目>“转换为web应用程序”,将重新创建这些designer.cs文件,但是VisualStudio将只在其中放置对缺少的web控件的引用,这些控件现在没有添加到主.cs部分类页面中。换句话说,我在上面复制并添加到index.aspx.cs部分类文件中的任何引用都不会在新的designer.cs文件中重新创建。因此,与您使用的Web应用程序模型没有冲突。当您看到这些设计器文件时,现在可以让开发人员安全地将它们复制到.cs文件后面的主代码中,并根据需要安全地删除设计器。

    您处理的是web应用程序,而不是网站。保留设计器文件。它们是必不可少的。你的项目受源代码管理吗?不,我的项目不受源代码管理,这有什么区别吗?我同意,你应该能够隐藏它们。您不会编辑它们,因为它们是自动生成的。你不会改变它们,因为任何改变都不会持续。那我为什么要看他们?
    namespace YourNameSpace
    {
    public partial class WebForm1
    {
    
        /// <summary>
        /// form1 control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::System.Web.UI.HtmlControls.Literal Message1;
    }
    }
    
    namespace YourNameSpace
    {
    public partial class index : System.Web.UI.Page
    {
        protected global::System.Web.UI.WebControls.Literal Message1;
    
        protected void Page_Load(object sender, EventArgs e)
        {
            this.Message1.Text = "hello world";
        }
    }
    }