web-dev-qa-db-ja.com

「コンパイルできない編集が行われた」。エラーがゼロであり、有効化および編集して続行がvs2010でチェックされている

デバッグモードでコードを編集できますが、ポップアップに「コンパイルできない編集が行われました。コンパイルエラーが修正されたため、実行を続行できません」というエラーが表示されますが、エラーリストが空で、編集の有効化と続行をオンにしました。 vs2010を使用しています。

クリーニングと再起動は問題を解決していません。

25
vivek verma

この問題は、ワークスペースが壊れたときに発生する可能性があります。 Visual Studioを閉じるだけで、.vsフォルダに移動し、Visual Studioを再起動します。

VS2017でも発生する可能性があります。

8
Jack Miller

私は同じ問題を抱えていました(VS2017)、メニュー項目BuildをクリックしてClean Solution次にRebuild Solutionで十分でした再び。

5
wecky

潜在的に、これはVisual StudioのEdit & Continue機能。
回避策はこの機能を無効にすることです:

Debug --> Options --> Debugging --> General --> uncheck Enable Edit and Continue

here からのソリューション。

こちら も回答。

3
veuncent

Visual Studio 2008、2010、2013でこの問題が発生しました。この問題が発生したときに、各プロジェクトのソリューションフォルダーに保存するバッチファイルを作成しました。 Vijayが言ったことを拡張して、これはbinとobjフォルダを一掃します。ときどきVisual Studioはフォルダーをロックしてしまい、それを閉じなければならないことがありますが、これらをクリアした後はしばらくの間問題がなくなります...根本的な原因はわかりませんが、バイナリとメモリ内のコードがどういうわけか同期していないと思います。しかし、これにより、素早く、クリーンで、オープンなソリューションを実現できます。

@echo off
cls
dir bin /s /AD /b > clean.tmp
dir obj /s /AD /b >> clean.tmp
for /F  "tokens=*" %%A in (clean.tmp) do echo rmdir /S /Q "%%A" 
echo This command will remove ALL BIN and OBJ folders in this tree.
echo To run the commands as listed ...
pause
for /F  "tokens=*" %%A in (clean.tmp) do rmdir /S /Q "%%A" 
del clean.tmp
pause
2

このタイプのエラーメッセージは、これまでにわかっている3つのカテゴリで発生する可能性があります。

  1. Visual Studio IDE環境を適切に設定する必要があるようなVisual Studioの設定
  2. ソース管理関連
  3. コードのメソッドには、デバッグモードで編集したくない相互運用関連のAPIがあります

ほとんどの人は#1を通過することで問題を解決できます。 Studioの設定が正しいかどうかを確認するには、新しく非常に小さなソリューションを実行し、デバッグモードで編集します。それでも同じエラーメッセージが表示される場合、問題はBill Gatesにあります:)、構成を修正してください。エラーがなければ、自分のコードにフォーカスを移してください。

ソリューションの別の方法でデバッグモードで編集してみてください。重要な部分がグローバル領域にない場合、このエラーはメソッドに依存する可能性があります。問題をメソッドに絞り込んだ後、まあ、あなたは幸運に近いです。メソッドのほとんどまたはすべてのコンテンツをコメント化し、行のコメントを徐々に外します。最終的には、問題が発生するポイントまでpingを実行します。

私の場合、問題を引き起こしたのはExcelファイルアプリケーションです。解決策:Excelアプリ、ワークブック、ワークシートのオブジェクトをグローバル変数として作成し、メインメソッドの1つで開いて定義しました。どういうわけか、そうした後、Bill Gatesは、デバッグモードでメソッドをもういじくりたくありません。 Billを回避するための私のトリックは、ワークブックのオープニングとワークシートの定義を小さな個別のメソッドで記述し、それを元のメソッドから呼び出すことです。その後、デバッグ実行中に大きなメソッドの任意の部分を楽しく編集できます!それでも、ワークブックとワークシートの処理のみを含む小さなメソッドでは、それを行うことはできません。まあ、それはビルの快適な職場です:)私はする必要はありません。

0
Bob

現在更新されているVisual Studio 2017 Communityを使用しています。

Hao Nguyenが上記のコメントで強調しているこのスレッド に投稿されたすべてのソリューションの試行に何時間も費やした後、機能した唯一のソリューションは、ワークスペースと_Map&Get_を再度削除することでした。

ワークスペースを削除するには、File→_Source control_→AdvancedWorkspaceRemove

0
alexlomba87