Visual Studio 2010でVisual Studioのエディットコンティニュー機能が停止したため、問題の原因がわかりません。
C#を使用してWindowsアプリケーションプログラムで作業しています。このアプリケーションは、最初はVisual Studio 2008で開発され、後にVisual Studio 2010にアップグレードされました。
.NET Frameworkを3.5から4.0にアップグレードするまで、エディットコンティニューを含め、すべてが正常に機能していました。
ここでデバッグモードを使用するときに、IDEのコードの行を変更すると、次のメッセージが表示されます。
コンパイルできない編集が行われました。コンパイルエラーが修正されるまで、実行は続行できません。
実際、コンパイルエラーはなく、更新を実行するにはVisual Studioを再起動する必要があります。
編集して続行するにはどうすればよいですか?
エディットコンティニュー機能は、dynamic
キーワードでは機能しません。
dynamic
パラメーターを使用するメソッドを削除しようとしたところ、変換されたプロジェクトがVisual Studio 2010で機能するようになりました。
インターネットの調査によると、これはマイクロソフトに報告されたバグです。以下のリンクに詳細が記載されています。
ソリューションエクスプローラービューで、参照の各参照を右クリックし、[プロパティ]を選択します。プロパティビューで、Embed Interop TypesのフィールドにFalseと署名します。これは私にとってはうまくいきます。
私は昨日Microsoftのプロファイラーを使用していましたが、その後「編集して続行」機能がなくなりました。数時間の苛立ちの後、コマンドプロンプトから VsPerfCLREnv /globaloffコマンドを実行してコンピューターを再起動する必要があることに、ようやく気付きました。今私は私の編集を持っており、未来を続けています。ちなみにターゲットプラットフォームとは関係ありません。それは手間のかからない任意のCPUに設定されたターゲットプラットフォームで動作します。
Excelファイルがいくつかありました"embed interop types" == true
。 falseに変更したら、編集して作業を続けます。
Visual Studio 2013でこの問題が発生しました。
私の場合、埋め込まれたInteropタイプがなく、コードにdynamic
キーワードがなかったため、完全なソリューションのクリーンを実行しましたが、成功しませんでした。私は何度も実行、デバッグ、再起動していたため、メモリに何らかの影響があった可能性があります-Visual Studioを閉じるのに1分以上かかり、その間ディスクがスラッシングしていました(おそらくメモリページング演奏する)。
VSによって生成されたすべてのファイルをクリーンアップしてみます。そのため、bin
およびobj
ディレクトリを削除し、*.suo
および*.user
ファイルも削除します。これらのファイルは自動生成されるため、何も影響はありません(ただし、他のファイルが誤って入力された場合に備えて、すべてのファイルのバックアップを作成します)。
時々それらのファイルは破損する可能性があり(古いVC++などではかなり頻繁に発生していました)、その後VSは非常に面白い動作を開始します。
vS2017コミュニティで作業しているときにこの深刻な問題が発生しました。既存のプロジェクトを移植すると、タグEmbedInteropTypesが.csprojファイルにまだ含まれていない可能性があるため、検索は無駄です。その場合は、テキストエディタを使用して、末尾のタグをプロパティグループDebug | x86(または使用するもの)の.csprojに追加します。
前:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DocumentationFile>bin\Debug\MyProject.XML</DocumentationFile>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>Prompt</ErrorReport>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
後:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DocumentationFile>bin\Debug\MyProject.XML</DocumentationFile>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>Prompt</ErrorReport>
<Prefer32Bit>false</Prefer32Bit>
<EmbedInteropTypes>false</EmbedInteropTypes>
</PropertyGroup>
これは、ソリューションに属するallプロジェクトで行う必要があります!
上記の解決策をすべて試しましたが、どれもうまくいきませんでした。ただし、Visual Studioでbinおよびobjectフォルダーを削除を実行して再度実行すると、機能し始めます。
この投稿は古いことを理解していますが、最近この問題が発生しました。この ブログ投稿 で修正方法を示しています。
これは私にとって何度も機能します。
私の状況では、誰かがプロジェクトの出力への参照を参照リストに追加しました。ソリューションエクスプローラーで、[ProjectName]\References for [ProjectName *]を確認して削除します。
プロジェクトが自身のコピーのコードに依存している場合、「編集して続行」することはできません。警告リストでは、これが問題の原因である場合、「インポートされたタイプと競合しています」というメッセージが表示される場合とそうでない場合があります(大規模なプロジェクトの場合)。
Visual Studio 2015では、.vsフォルダー(新しいスタイルの.suoファイルがある場所)を削除し、すべてのbinとobjを削除し、さらにninstalled Resharper 2015も削除しました。エディットコンティニューが帰ってきました。
(付記:インテリセンスは現在、ほぼ瞬時にオートコンプリートを表示していますが、以前は2〜5秒かかっていたため、リシャーパーの障害であり、おそらく無関係です...)
私にとってこれは、Nugetが参照されているNet Standardプロジェクトへの(Net Framework用にビルドされた)パッケージのダウンロードに失敗したことが原因でした。 Nugetが無限ループに入りました(出力ウィンドウを見てください)。
ソリューションは、「自動パッケージ復元」設定をオフにすることでした: https://developercommunity.visualstudio.com/content/problem /26638/nuget-infinite-loop.html
この設定にアクセスするには[ツール]> [オプション]> [NuGetパッケージマネージャー]> [全般]
VS2013では、デバッグオプションで[マネージ互換モードを使用する]を有効にする必要がありました。これは、.Net 2アセンブリを参照する.Net 4プロジェクトがあるためだと思います。
同じソリューションの別のプロジェクトでは、プロジェクトのプロパティで[TRACE定数の定義]をオフにする必要がありました。
動的/ポータブルクラスライブラリ/ Nugetパッケージまたは依存関係の問題はありません。 Visual Studioによって強調表示されたエラーや警告はありません。
これと 他のスレッド およびWebページに投稿されたすべてのソリューションの試行に何時間も費やした後、私のために機能した唯一のソリューションはチェックインしてワークスペースを削除し、Map&Get
再び。
ワークスペースを削除するには、Source control
→Advanced
→Workspace
→Remove
。
私はVisual Studio 2017 Communityを最新の状態で使用しており、新しいマシンに比較的新しくインストールした後(1週間、数労働時間)に使用しています。
上記のソリューションの前にテストしたが成功しなかった方法
<_ResolveReferenceDependencies>
をtrue
に設定します こここの後、チェックインを行い、同じバージョンのVisual Studio(2017 Community)を実行している別のマシンにソリューションをダウンロードしました。エディット・コンティニューの問題が発生しなかったので、ワークスペースを削除しました。
私の場合、デバッグオプションの「元のバージョンと完全に一致するようにソースファイルを要求する」のチェックを外すでした。 VS Community 2017はこちら。
参照されているプロジェクトのアセンブリバージョンから*を削除すると、問題が解決しました。
Githubから:
「VBと[Assembly:AssemblyVersion(1.2.3。* ")を含むC#プロジェクトの組み合わせでこの問題を再現しました。)VBプロジェクトこの設定でC#プロジェクトを参照すると、物事が崩れ始めます。逆に同じ問題があるようです。 "-rhuijben
https://github.com/dotnet/roslyn/issues/28224
(フラグが立てられるリスクがあるため、私たちは10年以上にわたってVSエディットコンティニューの問題に苦しんでいるようです。MicrosoftVisual Studioチームは、これが発生したときに詳細な情報を提供することで開発者を支援するのに十分な配慮をしていなかったので、私には衝撃的です)
上記のすべてを試しましたが、うまくいきませんでした。それは明らかにいくつかの低レベルのデバッグオプションを有効にするためでした(レジスタを表示...)
ツール->インポートとエクスポートの設定->すべての設定をリセット
それを解決しました
上記を読むと、私のUIプロジェクトには「Embed Interop Types」== trueのShell32があります。私はそれをfalseに変更し、「編集して続行」が機能し始めました。
ソリューションエクスプローラービューで、参照の各参照を右クリックし、[プロパティ]を選択します。プロパティビューで、Embed Interop TypesのフィールドにFalseと署名します。これでうまくいきました。