【问题标题】:How to Edit and Continue in ASP.Net MVC 6如何在 ASP.Net MVC 6 中编辑和继续
【发布时间】:2015-06-03 23:14:06
【问题描述】:

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

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

“如果在调试开始时未构建项目,则不允许更改”。

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

【问题讨论】:

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


    【解决方案1】:

    我在我的 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 支持在附加到进程上编辑继续。我的理解是这个变量在 CLR 中提示分配一点额外的内存,这是编辑和继续工作所需的。

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

    set COMPLUS_FORCEENC=1
    ExeToDebug.exe
    

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

    该线程中的 OP 说,他曾经通过为用户配置文件设置环境变量来在以前版本的 IIS 中工作,然后应用程序池将在其用户配置文件加载时加载,尽管他无法获得在 IIS8 中工作(可能与操作系统中的 WS2012/Win8 安全设置有关)。

    tldr;以下是我的工作方式

    写了bat脚本...

    #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 和 VS2015 的各位!

    【讨论】:

    • 老鼠......你可以从我的回答中猜到,这是使用.Net 4.5......不确定这将如何在.Net Core和asp.net核心等上工作......但希望这仍然对某人有所帮助。
    • 尽管在这里stackoverflow.com/questions/1010213/… 尝试了一切,但编辑并继续对我不起作用。但是你的脚本使它工作:) 我唯一要做的额外的事情是确保在工具>选项>调试>常规>“要求源文件与原始版本完全匹配”下未选中。
    • 遗憾的是,它对我不起作用。我验证了 env 变量已设置,我已取消选中“要求源文件与原始版本完全匹配”,并且我已将项目类型切换为 x86。尽管如此,还是没有成功。我只能让它与 IIS Express 一起工作。
    • 就个人而言,我只是通过环境变量->系统变量设置COMPLUS_FORCEENC=1
    【解决方案2】:

    编辑并继续在 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

    【讨论】:

    • 大卫,关于“编辑并继续”何时出现的任何更新?我已经尝试过 dnx-watch 并且它不起作用。起作用的是 nodemon,但重新启动 dnx 网络调用非常慢。这可能不是问这个问题的最佳地点,但值得一试。
    • @StuartAllen 任何运气或新信息?谷歌没有提供太多帮助。
    • @StuartAllen 我猜 ENC 将在 ASP.NET 5 的 RTM 版本或下一个 RC 版本中可用。在 RC1 中它仍然无法正常工作。虽然这是推测,但我也没有找到任何官方公告。
    • 对我来说还是不行,我不得不暂时回到旧模式,没有 ENC 对我的流程来说是一场噩梦。每次编辑前端代码都必须重新启动 dnx 太慢了。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      因此最终切换到 IIS Express 进行调试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-29
        • 1970-01-01
        • 2011-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-28
        • 1970-01-01
        相关资源
        最近更新 更多