我刚刚开始使用已从 VB.NET 网站转换为 C# Web 项目的 ASP.NET 应用程序,我发现使用 C# 的开发时间比使用 VB.NET 的开发时间要长得多。
当我在 C# 代码隐藏文件中编辑一行简单的代码时,我必须手动重新编译整个站点才能看到更改的结果。在网站中,我可以编辑隐藏文件的代码,然后在浏览器中执行它以查看更改的结果,而无需进行编译(或者右键单击并选择编译页面)。
有没有一个选项可以只编译一页?如果没有,是否可以采取一些措施(除了获取更多硬件或将项目转换回网站之外)来加快开发/调试过程?
澄清
在 ASP.NET (VB) 网站项目中,我可以在代码隐藏中进行编辑,单击“保存”按钮,然后打开浏览器并导航到该页面以立即查看更改(或至少在 5 秒内) 。在 ASP.NET (C#) 的 Web 应用程序项目中,我发现我必须编译整个网站才能在浏览器中查看实时更改(这个过程需要 2 分钟以上)。
您的 .aspx 和 .ascx 应通过 CodeFile 而不是 CodeBehind 引用其代码隐藏文件。然后代码隐藏将根据需要进行编译。
<%@ Page Language="C#" AutoEventWireup="true" EnableViewState="true" CodeFile="myPage.aspx.cs" Inherits="myPage" %>
而不是
<%@ Page Language="C#" AutoEventWireup="true" EnableViewState="true" CodeBehind="myPage.aspx.cs" Inherits="myPage" %>
但也有一些缺点:
从长远来看,CodeFile 将为您节省大量时间。
您可以随时按
Ctrl + Shift + B
构建您的解决方案。
右键单击并
Exclude
您不想包含的任何项目/文件夹/文件。
编辑:必须完整构建 Web 应用程序项目,但 Visual Studio 仅构建那些已更改的文件,因此这对您来说不会太慢。
在 Web Site 项目中,每当您默认运行或调试任何页面时,Visual Studio 都会完全编译网站项目 - 但是 - 您可以更改构建项目选项以在运行或调试时仅编译当前页面。