ASP.Net MVC 6 で編集と継続を行う方法 質問する

ASP.Net MVC 6 で編集と継続を行う方法 質問する

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

VS 2015 RC で ASP.Net/VNext (MVC 6) を使用して編集と続行を有効にする方法を教えてください。この機能は利用できますか? 表示されるメッセージは次のとおりです。

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

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

ベストアンサー1

私は、ASP.Net MVC 4 プロジェクトで VS 2015 の Edit and Continue を動作させました。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 では動作させることができませんでした (OS の WS2012/Win8 セキュリティ設定に関連している可能性があります)。

要約: これが私がそれを動作させた方法です

バットスクリプトを書きました...

#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 の皆さん、ありがとうございます!

おすすめ記事