我们在做网站开发的时候,通常是写好了一个功能就要进行测试,Visual Studio上点“Start Debugging”(快捷键是F5),这是调试模式,也有直接运行模式,“Start Without Debugging”(快捷键是Ctrl+F5),网站启动,并且默认会打开一个浏览器窗口让你看到结果,假如这个时候你发现点问题,需要调整代码……

对于非*.cs文件

如果是cshtml、aspx、ashx或asmx这类非C#文件(*.cs),不管是调试模式还是非调试模式,直接点保存,就生效了,网站一刷新页面,第一次访问到它们,它们就会自动被编译,重新生成可执行代码。

对于*.cs文件(调试模式下)

如果你尝试在调试中修改cs文件,会得到这么一个错误提示:

你得先把程序暂停了,才能对它进行修改,暂停的办法有两种,一种是断点,程序跑到断点处就自动暂停了,另一种是直接点“Break All”(快捷键是Ctrl+Alt+Break),暂停了程序,就可以对cs文件进行修改了,修改好之后,点一下“Continue”(快捷键F5),就生效了,神奇的是:你甚至不需要点保存。

当然了,这还得有个前提,就是你的Visual Studio开启了这个选项:

如果没开启这个选项的话,你在调试中可以继续编辑C#代码,可以保存,但不会生效。

对于*.cs文件(非调试模式下)

你可以直接修改cs文件,没有任何问题,保存,看看是否起作用?——答案是否。因为承载着你的程序的容器——IIS Express并不知道你修改了源代码,你需要重新编译一下,点一下“Build Solution”(快捷键F7),然后就生效了。当然对非ASP.NET程序来说,这招行不通,因为程序运行时,EXE文件是写保护的,这跟ASP.NET程序的运行原理不一样。

希望通过这几种方式,能够提高大家的网站开发效率。

使用dotnet watch

对于.NET Core程序来说,还有另外一种方法,就是使用“Microsoft.DotNet.Watcher.Tools”工具。在项目的csproj中加入这么一行:

<DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="2.0.0" />

接下来在项目的目录下(也就是csproj所在的目录下),执行一次dotnet restore(这个不用每次都执行),然后执行dotnet watch run。程序就跑起来了。

接下来你对C#代码的修改都会被Watcher观察到,并自动编译你的代码和重启你的程序,这个过程不需要你额外自己去Build和Run,当然你程序如果有错,它也会显示出来Build失败,失败的话不会重启程序,继续跑着旧版。

由于需要打开命令行界面,所以总感觉有点麻烦,速度嘛,相比前面提起的手动Build Solution,好像也快不去哪里。用不用自己看。

ASP.NET开发中修改代码而不重启网站的更多相关文章

  1. C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?

    C#中??和?分别是什么意思? 在C#中??和?分别是什么意思? 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; ...

  2. ASP.NET开发中主要的字符验证方法-JS验证、正则表达式、验证控件、后台验证

    ASP.NET开发中主要的字符验证方法-JS验证.正则表达式.验证控件.后台验证 2012年03月19日 星期一 下午 8:53 在ASP.NET开发中主要的验证方法收藏 <1>使用JS验 ...

  3. asp.net开发中常见公共捕获异常方式总结(附源码)

    本文实例总结了asp.net开发中常见公共捕获异常方式.分享给大家供大家参考,具体如下: 前言:在实际开发过程中,对于一个应用系统来说,应该有自己的一套成熟的异常处理框架,这样当异常发生时,也能得到统 ...

  4. win7,vs2010,asp.net项目中修改外部js文件,在调试时加载的还是旧文件

    win7,vs2010,asp.net项目中修改外部js文件,在调试时加载的还是旧文件 我杀过 w3wp.exe和asp.net_state的进程,重启 iis admin的服务,都还是不行. 只是把 ...

  5. asp.net5开发中DNX SDK版本的影响

    某次asp.net5开发中遇到了一个很奇怪的问题,引用部分的nuget包没有显示任何错误,如下图: 但是编译时出现了几百个错误: 错误基本都是形如“CS0246 The type or namespa ...

  6. Android开发中使用代码删除数据库

    更多信息参考:Android开发中使用代码删除数据库 在Android开发中,如果用到数据库,就会有一个很麻烦的问题,就是有时候需要删除数据库很麻烦,要打开Android Device Monitor ...

  7. 企业开发中选择logback而不是log4j的理由

    不知道看到这篇文章的Java工程师有没有考虑过这个问题:为什么在企业开发中会选择logback来记录日志,而不是log4j呢? 如果你以前没有考虑过这个问题,那么现在如果让你考虑一下,你可能觉的会是因 ...

  8. ASP.NET WebForm中前台代码如何绑定后台变量

    转载自 http://www.cnblogs.com/lerit/archive/2010/10/22/1858007.html 经常会碰到在前台代码中要使用(或绑定)后台代码中变量值的问题.一般有& ...

  9. STS热部署,springboot项目中修改代码不用重新启动服务

    方法如下: 1.在pom文件中引入  devtools  依赖: <dependency> <groupId>org.springframework.boot</grou ...

随机推荐

  1. (七)SpringBoot2.0基础篇- application.properties属性文件的解析及获取

    默认访问的属性文件为application.properties文件,可在启动项目参数中指定spring.config.location的参数: java -jar myproject.jar --s ...

  2. 关于多条数据转为json格式单次传输的问题 2017.05.27

    数据形式如下: var mycars = [];//定义数组存放多条数据 for(var i=0;i<2;i++){ var jsonData = {};//定义变量存放单条数据 jsonDat ...

  3. javascript项目实战---ajax实现无刷新分页

    分页: limit 偏移量,长度; limit 0,7; 第一页 limit 7,7; 第二页 limit 14,7; 第三页 每页信息条数:7 信息总条数:select count(*) from ...

  4. C/C++中结构体struct 的使用

    结构(struct)      结构是由基本数据类型构成的.并用一个标识符来命名的各种变量的组合.  结构中可以使用不同的数据类型.      1. 结构说明和结构变量定义      在Turbo C ...

  5. SublimeText 自带格式化代码功能

    其实sublime自身就有格式化命令,就不再安装插件,位置在[Preferences]->[Key Bindings]->[User]中,   中文版的位置在  [首选项]->[按键 ...

  6. Java 读书笔记 (七) 变量

    Java语言中, 所有的变量在使用前必须声明.声明变量的基本格式: type identifier [ =value],[,identifier [=value]...]; 声明变量的实例,有些包含了 ...

  7. fatal: HttpRequestException encountered 解决方法

    fatal: HttpRequestException encountered解决方法   之前在windows下一段时间git push都没什么问题,最近一旦提交就会弹出  无论是push前先将远程 ...

  8. 如何去掉word中的回车符??

    打开word界面,点击页面左上角的"文件"按钮,进入到文件栏目中,进行设置. 进入文件之后,在左下角找到并点击"选项",进入到word的设置界面中 进入到wor ...

  9. Windows 下python 环境安装

    1.先在官网上下载安装包,官网地址:  https://www.python.org   2. 选择自己需要的版本进行安装,最好选择新版本下载,   3. 下载完成后,双击运行安装,一直next,直至 ...

  10. 从group by 展开去

    一.概念 "Group By"从字面意义上理解就是根据"By"指定的规则对数据进行分组,所谓的分组就是将一个"数据集"划分成若干个" ...