最初のVisualStudio拡張プロジェクトを開発しようとしています。VS10SDKがインストールされており、新しいプロジェクトを作成して正常にビルドできましたが、デバッグしようとするとシンボルが読み込まれません。サンプルプロジェクトをオンラインでダウンロードし、シンボルが読み込まれ、ブレークポイントが正常にヒットしているため、VSIXプロジェクトにデバッグできることを知っていますhttp://weshackett.com/2009/11/configure-vsix-project-to-enable -デバッグ/)。ですから、私がVSIXプロジェクトを作成した方法と特に関係があるに違いありません(多分!)。私が気づいたことの1つは、dllとファイルがローカルの「アプリケーションデータ」領域にコピーされておらず、マニフェストのみがコピーされているのに対し、サンプルプロジェクトでは、dllを含むすべてのファイルがコピーされていることです。両方のプロジェクト設定を比較しましたが、どちらも同じです。私はそれが理にかなっていることを願っています、私がもっと詳細を提供することができれば私に知らせてください...
7 に答える
OK私はなんとかそれを動かすことができました。そのためには、vsixプロジェクトをアンロードし、ファイルをXMLドキュメントとして編集する必要がありました。
プロジェクトファイルから次の行を削除します。
<IncludeAssemblyInVSIXContainer>
false
</IncludeAssemblyInVSIXContainer>
<IncludeDebugSymbolsInVSIXContainer>
false
</IncludeDebugSymbolsInVSIXContainer>
<IncludeDebugSymbolsInLocalVSIXDeployment>
false
</IncludeDebugSymbolsInLocalVSIXDeployment>
<CopyBuildOutputToOutputDirectory>
false
</CopyBuildOutputToOutputDirectory>
<CopyOutputSymbolsToOutputDirectory>
false
</CopyOutputSymbolsToOutputDirectory>
またはそれらをtrueに設定します。
<IncludeAssemblyInVSIXContainer>
true
</IncludeAssemblyInVSIXContainer>
<IncludeDebugSymbolsInVSIXContainer>
true
</IncludeDebugSymbolsInVSIXContainer>
<IncludeDebugSymbolsInLocalVSIXDeployment>
true
</IncludeDebugSymbolsInLocalVSIXDeployment>
<CopyBuildOutputToOutputDirectory>
true
</CopyBuildOutputToOutputDirectory>
<CopyOutputSymbolsToOutputDirectory>
true
</CopyOutputSymbolsToOutputDirectory>
または、存在しない場合は...ノードの下に追加します。
これらの行を削除してソリューションを再構築すると、dllとpdbが期待どおりにbin\debugフォルダーと"AppData\ Local \ Microsoft \ VisualStudio \ 10.0Exp \Extensions\"フォルダーにコピーされました。
そこに行った..VS-2019で、正常に動作するVSIX非同期を開発していますが、ある時点で、VisualStudioExperimentalバージョンがデバッグモードでのVSIXの読み込みを停止しました。
根本的な原因はわかりませんが、VisualStudioの同じソリューションで2番目のVSIXプロジェクトテンプレートを開くのと同時に発生しました。それが問題と関係があるかどうかはわかりませんが、最初の実行で、両方のVSIX-esがExperimentalバージョンセッションにロードされていることがわかりました。その時点で、実験バージョンを閉じてリセットしました。次の実行では、デバッグ時にVSIXがExperimentalバージョンにロードされていないようでした。非常にイライラします。
私が見つけた解決策、いじくり回す
- VisualStudioのインスタンスをすべて閉じます
- スタートメニューのコマンドラインツールを使用して、VisualStudioExperimentalバージョンをリセットします。
- VSを開き、 VSIXソリューションをロードします
- VSIXソリューションをクリーンアップする
- リリースモードに切り替えます(はい、実行します。)
- ソリューションを再構築してから実行
- Just my Code警告ポップアップで、[デバッグの続行]を選択します。
- これで、実験バージョンがVSIXで開始されます。ロードされます!
- リリースモードは、デバッグ時に便利ではありません。Expバージョンを閉じるVSIXソリューションに戻ります
- デバッグモードに戻します
- 再実行
私にとって、上記のシーケンスは問題を解消させます。VSIXが正しくロードされます。
私は同じように見える問題を抱えていました-デバッグが開始されますが、ブレークポイントを設定すると、「役に立たない」と「ブレークポイントはヒットしません」という注釈が表示されます。ここで他の回答のすべてをチェックしたところ、1つのプラグインプロジェクトリポジトリ(特定のバージョンへのパーマリンク)に「寄稿者ガイド」が見つかりました。
したがって、私を助けたのは次のとおりです。プロジェクトのプロパティを開き、[デバッグ]タブで次のことを確認します。
devenv.exe
「アクションの開始」は「外部プログラムの開始」に設定され、パスは「C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE\devenv.exe」などのパスと一致します。デフォルトでは何でしたか。「開始オプション」では「コマンドライン引数」が設定されていました。
/rootsuffix Exp
これはデフォルトでは欠落していたため、追加する必要がありました。
したがって、追加/rootsuffix Exp
すると機能し始めます。次にF5キーを押すと、プラグインコードのブレークポイントが機能します。
私は同じ問題を抱えています、そしてVisual Studio 2019では、デバッグコマンドの実行引数は/rootsuffix Roslyn
プロジェクトを更新して再構築しようとしましたが、機能しません。幸いなことに、私はそれをデバッグする別の方法を見つけました。それはunitTest
です。vsixテンプレートによって作成された最新のソリューション。uniteTestsプロジェクトが含まれています。
testmethodでは、メソッドを呼び出しVerifyCSharpc
てテストDiagnostic
し、メソッドを呼び出しVerifyCSharpFix
てテストすることができFix
ます。unitTestをデバッグするとき、正しいブレークポイントに到達できます
誤ってvs201715.9.20で修正する方法を見つけました
間もなく:新しいVSで拡張機能をアンインストールし、F5で新しいVSを再実行してから、ソリューションをクリーンアップして再構築してから、F5で再度実行します。
拡張機能をアンインストールした後にVSを再実行すると、新しいVSは拡張機能が削除されたことを「理解」します。その後、コードを再構築し、新しいVSに「配置」します。
詳細:
- F5を実行し、新しいVSで拡張機能に移動して拡張機能をアンインストールします
- 新しいVSを閉じる
- 開いたVSIXのアンインストールウィンドウで-拡張機能をアンインストールします
- 何も変更せず、F5でコードを再実行し、新しく起動したVSで拡張機能が削除されていることを確認し、新しいVSを閉じます。
- コーディングVS-クリーンソリューション
- 再構築
- F5で運営、お楽しみください
Visual Studio Experimentalをリセットしてみてください(私にとってはうまくいきます)。[スタート]メニュー->[VisualStudio 2019]-> [VisualStudio2019実験インスタンスのリセット]に移動します
(各ビジュアルスタジオバージョンにはリンクがあります)