如何在ASP.Net MVC 6中编辑和继续

时间:2015-06-03 23:14:07

标签: c# asp.net-core visual-studio-2015 asp.net-core-mvc

在使用旧版本的Visual Studio和ASP.NET的日子里,可以在调试时编辑代码(即使有一些限制)。

如何在VS 2015 RC中启用编辑并继续使用ASP.Net/VNext(MVC 6)。 这个功能可用吗?我收到的消息是:

Error “如果在调试开始时没有构建项目,则不允许进行更改。”

如何在调试模式启动时构建项目?

4 个答案:

答案 0 :(得分:7)

我在我的ASP.Net MVC 4项目中获得编辑并继续在VS 2015中工作。 David R在他的回答中发布了一个链接(这里再次说明完整性)

http://blogs.msdn.com/b/visualstudioalm/archive/2015/04/29/net-enc-support-for-lambdas-and-other-improvements-in-visual-studio-2015.aspx

如果在加载运行时期间设置了环境变量,则页面显示VS2015支持 Attach To Process 上的Edit Continue。我理解的方式是这个变量在CLR中提示分配一点额外的内存,这是编辑和继续工作所需的。

现在的诀窍是让运行应用程序池的w3wp.exe进程加载此变量。在任何其他进程中,我只需打开命令行并执行

set COMPLUS_FORCEENC=1
ExeToDebug.exe

但是我无法找到一种方法来直接运行带有环境变量的app池。我在这个页面上发布了一个解决方法(作为CSUdev),这是一个设置机器级环境变量的小黑客,重置iis,调用启动应用程序池的URL,然后清除机器级环境变量。 http://forums.iis.net/p/1195182/2115550.aspx?p=True&t=635895941266217500

该线程中的OP表示他曾经在IIS的早期版本中使用此工作,方法是为用户配置文件设置环境变量,然后在加载用户配置文件时加载应用程序池,尽管他不能在IIS8中工作(可能与操作系统中的WS2012 / Win8安全设置有关)。

<强> tldr;这是我如何运作

写了蝙蝠脚本......

#set Edit n Continue variable (global... :/ )
setx /m COMPLUS_FORCEENC 1

#kill/restart existing app pools
iisreset

#force app pool to start up (and use the Edit & Continue var)
#you can download wget or curl (instead of start) 
#if you don't want this to open up your default browser every time
start "http://localhost/urlForAspNetApp" 

#clear Edit n Continue var
setx /m COMPLUS_FORCEENC ""

然后VS2015附加到进程w3wp.exe。 巴姆。编辑并继续。谢谢MS&amp; VS2015人!

答案 1 :(得分:5)

编辑并继续在Visual Studio 2015中此时不适用于ASP.NET 5应用程序,但计划在2015年最终版本中支持它。

有关VS2015 ENC更改的更多信息,请查看此博客条目: http://blogs.msdn.com/b/visualstudioalm/archive/2015/04/29/net-enc-support-for-lambdas-and-other-improvements-in-visual-studio-2015.aspx

答案 2 :(得分:1)

我有ASP.NET MVC5,并意识到如果你使用IIS Express“编辑并继续”几乎可以开箱即用。

使用“本地IIS”它不起作用,但没有尝试从matrixugly的帖子中的“COMPLUS_FORCEENC”设置。

由于这个原因,最终切换到IIS Express进行调试。

答案 3 :(得分:0)

安装此服务更新后,对于MVC 6项目的VS 2015 Update 1,这似乎已得到修复https://www.microsoft.com/en-us/download/details.aspx?id=50723