web-dev-qa-db-ja.com

ASP.Net MVC 6で編集して続行する方法

昔は、Visual StudioとASP.NETの古いバージョンを使用していたため、デバッグ中にコードを編集することが可能でした(いくつかの制限があります)。

VS 2015 RCでASP.Net/VNext(MVC 6)を使用して編集を有効にして続行するにはどうすればよいですか?この機能は利用できますか?私が受け取るメッセージは次のとおりです。

Error 「デバッグの開始時にプロジェクトがビルドされていなかった場合、変更は許可されません」。

デバッグモードの開始時にプロジェクトをビルドするにはどうすればよいですか?

22
J. Lennon

エディットコンティニューは、現時点では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

5
David Roth

VS 2015でASP.Net MVC 4プロジェクトを編集して続行しました。デビッド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

しかし、環境変数を使用してアプリプールを直接実行する方法が見つかりませんでした。このページに回避策(CSUdevとして)を投稿しました。これは、マシンレベルの環境変数を設定し、iisをリセットし、アプリプールを開始するURLを呼び出し、マシンレベルの環境変数をクリアする小さなハックです。 http://forums.iis.net/p/1195182/2115550.aspx?p=True&t=6358959412662175

そのスレッドのOPは、以前のバージョンのIISでこれを機能させていたが、ユーザープロファイルの環境変数を設定することで、ユーザープロファイルが読み込まれたときにアプリケーションプールが読み込まれると述べた。 IIS8で動作させることができません(OSの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とVS2015の皆さん、ありがとう!

9
C. Tewalt

私はASP.NET MVC5を使用しており、IIS Expressを使用する場合、Express "Edit and Continue"はそのままでほとんど機能します。

"ローカルIIS"では機能しませんが、matrixuglyの投稿にある "COMPLUS_FORCEENC"設定は試していません。

このため、デバッグのためにIIS Expressに切り替えました。

1
Florin D

これは、このサービス更新プログラムがインストールされた後、MVC 6プロジェクトのVS 2015 Update 1で修正されるようです https://www.Microsoft.com/en-us/download/details.aspx?id=5072

0
Matt Kocaj