46

Visual Studio2010でVisualStudioの編集と続行機能が停止しましたが、問題の原因がわかりません。

私はC#を使用してWindowsアプリケーションプログラムに取り組んでいます。このアプリケーションは、最初はVisual Studio 2008で開発され、後でVisualStudio2010にアップグレードされました。

.NET Frameworkを3.5から4.0にアップグレードするまで、編集と続行を含め、すべてが正常に機能していました。

デバッグモードを使用すると、IDEのコードの行を変更すると、次のメッセージが表示されます。

コンパイルできない編集が行われました。コンパイルエラーが修正されるまで、実行を続行できません。

実際には、コンパイルエラーはありません。更新を実行するには、VisualStudioを再起動する必要があります。

編集して続行するにはどうすればよいですか?

4

23 に答える 23

45

ソリューションエクスプローラービューで、参照の各参照を右クリックし、[プロパティ]を選択します。[プロパティ]ビューで、[埋め込み相互運用機能の種類]フィールドにFalseに署名します。これは私のために働きます。

于 2011-05-19T21:31:24.357 に答える
20

編集して続行機能は、dynamicキーワードでは機能しません。

パラメーターを使用するメソッドを削除しようとしましたがdynamic、変換されたプロジェクトはVisualStudio2010で機能するようになりました。

インターネットの調査によると、これはマイクロソフトに報告されているバグです。以下のリンクに詳細があります:

于 2011-01-24T13:52:31.480 に答える
5

私はいくつかのExcelファイルを持っていました"embed interop types" == true。falseに変更したら、編集して作業を続行します。

于 2012-06-13T12:29:44.087 に答える
5

私は昨日Microsoftのプロファイラーを使用していましたが、その後、「編集して続行」機能がなくなりました。何時間もの欲求不満の後で、コマンドプロンプトからVsPerfCLREnv / globaloffコマンドを実行し、コンピューターを再起動する必要があることにようやく気づきました。これで編集が完了し、今後も続行できます。ちなみに、ターゲットプラットフォームとは何の関係もありません。面倒なことなく、任意のCPUに設定されたターゲットプラットフォームで動作します。

于 2012-09-22T11:38:24.240 に答える
5

この投稿は古いと思いますが、最近この問題が発生しました。このブログ投稿で修正方法を説明しています。

  • objフォルダを削除します
  • binフォルダーを削除します。ライブラリやデータファイルなどをコピーして、削除後にフォルダに貼り付けることができます。
  • VSから、メニュー[ソリューション]->[クリーンソリューション] 。

これは私にとって何度も機能します。

于 2017-10-30T06:09:05.657 に答える
4

Visual Studio 2013でこの問題が発生しましたが、:-

  • ソリューションを閉じて再度開くだけで機能する場合もありますが、そうでない場合は
  • Visual Studioを再起動すると(ソリューションを閉じ、Visual Studioを終了し、Visual Studioを再度開き、ソリューションを再度開き、[編集して続行]でデバッグを再試行します)、修正されます。

私の場合、埋め込まれた相互運用機能タイプもコードにもdynamicキーワードがなく、完全なソリューションをクリーンに実行しても成功しませんでした。私は何度も実行、デバッグ、再起動を行っていたので、メモリと関係がある可能性があります-Visual Studioを閉じるのに1分以上かかり、その間にディスクがスラッシングしていました(おそらくメモリのページング遊ぶ)。

于 2014-05-28T20:11:34.717 に答える
2

VSによって生成されたすべてのファイルをクリーンアップしてみます。したがって、binandobjディレクトリを削除し、*.suoand*.userファイルも削除します。これらのファイルは自動生成されるため、これは何の影響も及ぼしません(ただし、誤って他のファイルが挿入された場合に備えて、すべてのファイルのバックアップを作成します)。

これらのファイルが破損することがあり(古いVC ++などでかなり頻繁に発生していました)、VSが非常に面白い動作を開始することがあります。

于 2011-01-24T12:52:03.013 に答える
2

私の状況では、誰かがプロジェクトの出力への参照を参照リストに追加しました。ソリューションエクスプローラーで[ProjectName] \ References for[ProjectName*]を探して削除します。

プロジェクトがそれ自体のコピーからのコードに依存している場合、「編集して続行」することはできません。警告リストでは、これが問題の原因である場合、(より大きなプロジェクトでは)「インポートされたタイプとの競合」メッセージがある場合とない場合があります。

于 2014-01-08T04:14:05.483 に答える
2

私は上記のすべての解決策を試しましたが、どれもうまくいきませんでした。ただし、Visual Studioでbinフォルダーとオブジェクトフォルダーを削除して再度実行すると、機能し始めます。

于 2014-06-29T18:22:37.200 に答える
2

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>

これは、ソリューションに属する すべてのプロジェクトで実行する必要があります。

于 2018-05-09T11:23:27.707 に答える
1

VS2013では、デバッグオプションで[管理された互換モードを使用する]を有効にする必要がありました。.Net2アセンブリを参照する.Net4プロジェクトがあるためだと思います。

同じソリューションの別のプロジェクトでは、プロジェクトのプロパティで[トレース定数の定義]のチェックを外す必要がありました。

于 2014-08-05T02:11:00.653 に答える
1

Visual Studio 2015では、.vsフォルダー(新しいスタイルの.suoファイルがある場所)を削除し、すべてのbinとobjを削除し、Resharper2015もアンインストールしました。編集して続行が戻ってきました。

(補足:インテリセンスはほぼ瞬時にオートコンプリートを表示していますが、2〜5秒前に、おそらくリシャーパーのせいで、おそらく無関係です...)

于 2016-01-19T10:30:52.867 に答える
1

私にとってこれは、Nugetが参照されていたNet Standardプロジェクトにパッケージ(Net Framework用に構築されたもの)をダウンロードできなかったことが原因でした。Nugetは無限ループに入りました(出力ウィンドウを見てください)。

解決策は、「パッケージの自動復元」設定をオフにすることでした。https://developercommunity.visualstudio.com/content/problem/26638/nuget-infinite-loop.htmlを参照してください

この設定にアクセスするには [ツール]>[オプション]>[NuGetパッケージマネージャー]>[一般]

于 2018-07-19T12:10:08.257 に答える
1

[ツール]->[オプション]->[デバッグ]->[一般]で[ネイティブ編集を有効にして続行]のチェックを外す必要がありました。

ここに画像の説明を入力してください

于 2019-05-05T02:03:01.387 に答える
0

上記を読むと、私のUIプロジェクトには「EmbedInteropTypes」==trueのShell32があります。falseに変更し、「編集して続行」が機能し始めました。

于 2012-05-01T16:04:45.880 に答える
0

ソリューションエクスプローラービューで、参照の各参照を右クリックし、[プロパティ]を選択します。[プロパティ]ビューで、[埋め込み相互運用機能の種類]フィールドにFalseに署名します。これは私のために働いた。

于 2015-10-16T11:42:51.280 に答える
0

VisualStudio2017でもこのエラーが発生する場合

動的/ポータブルクラスライブラリ/Nugetパッケージまたは依存関係の問題はありません。VisualStudioによって強調表示されたエラーや警告はありません。

このスレッドや他のスレッドやWebページに投稿されたすべての解決策を何時間も試した後、私のために働いた唯一の解決策は、チェックインし、ワークスペースを削除して、Map&Getもう一度やり直すことでした。

ワークスペースを削除するには、Source control→→→ 。AdvancedWorkspaceRemove

Visual Studio 2017コミュニティを最新の状態で使用しており、新しいマシンに比較的新しくインストールした後(1週間と数時間の作業時間)。


上記の解決策の前にテストしたが成功しなかった方法

  • VisualStudioオプションで[編集と続行]が有効になっていることを確認しました。チェックを外して、もう一度チェックします
  • ソリューション内のすべてのプロジェクトのbinとobjを削除します
  • すべてをクリーンアップして再構築し、VSを再起動/上記と組み合わせて再起動します
  • これに触発されたプロジェクトのコンパイルオプションとNugetパッケージおよびdllの互換性を確認する
  • さまざまな組み合わせでプロジェクトをアンロードして、依存関係の問題やその他の問題をテストします(これに触発されて
  • ソリューションを削除して再ダウンロードする(ワークスペースを削除せずに)
  • 相互運用タイプを埋め込むにはFalseに署名します
  • ここで説明されているように設定<_ResolveReferenceDependencies>しますtrue
  • 上記とVSの再起動および再起動の組み合わせ

この後、チェックインを行い、同じバージョンのVisual Studio(2017 Community)を実行している別のマシンにソリューションをダウンロードしました。Edit&Continueの問題が発生しなかったため、ワークスペースを削除しました。

于 2017-12-19T23:46:35.510 に答える
0

私の場合、機能したのは、デバッグオプションの「ソースファイルが元のバージョンと完全に一致する必要がある」のチェックを外すことでした。VSCommunity2017はこちら。

于 2018-06-27T22:27:43.197 に答える
0

参照しているプロジェクトのアセンブリバージョンから*を削除すると、問題が解決しました。

Githubから:

「この問題は、[アセンブリ:AssemblyVersion(1.2.3。* ")]を使用してVBプロジェクトとC#プロジェクトを組み合わせて再現しました。VBプロジェクトがこの設定でC#プロジェクトを参照すると、物事は崩壊し始めます。逆に同じ問題があるようです。」-rhuijben

https://github.com/dotnet/roslyn/issues/28224

(フラグが立てられるリスクがありますが、VS Edit and Continueの問題に10年以上苦しんでいるようです。これが発生したときに、Microsoft Visual Studioチームが開発者を支援するのに十分な配慮をしていないことは、私にとって衝撃的です)

于 2019-07-05T17:41:11.327 に答える
0

私は上記のすべてを試しましたが、どれもうまくいきませんでした。これは明らかに、いくつかの低レベルのデバッグオプション(ビューレジスタ...)を有効にしたことが原因でした。

[ツール]->[設定のインポートとエクスポート]->[すべての設定をリセット]

それを解決しました

于 2019-08-23T07:55:24.863 に答える
0

私にとってうまくいったことは似ていましたが、受け入れられた答えとまったく同じではありませんでした。LINQクエリの結果として作成された匿名型がありました。すなわち

var thingy = (from thing in things select new { thing.Property1, thing.Property2 }).First();

匿名タイプをタプルに変更すると、問題は解決しました。

var (thing1, thing2) = (from thing in things select (thing.Property1, thing.Property2)).First();
于 2020-10-16T15:24:36.213 に答える
0

プロジェクトでデバッグモード中に続行して編集することができなかった理由の1つを理解しました。同じファイル名の2つのc#ファイルは、異なるフォルダーと異なる名前空間にあり、異なるクラス名を持っている可能性がありますが、使用することはできません。クラス名を変更しましたが、それでも修正されませんでした。.csファイル名を変更する必要があります。

.Net Framework 4.8にはこの問題がないため、.netコアがこの機能を追加しました。

于 2021-05-11T19:19:27.780 に答える
-1

VS 2015では、このエラーは最近インストールしたnuGetパッケージが原因で発生していました。このパッケージをアンインストールして再インストールすることで、バグが修正されました。

于 2016-09-02T01:31:55.960 に答える