問題タブ [visual-studio-package]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio - カスタム メモリ ウィンドウ用の Visual Studio 拡張機能
Visual Studio 拡張機能パッケージのカスタム ツール ウィンドウは、VS2012 および VS2013 のデバッグ セッション中にカスタム式を評価することになっています。最終的な目標は、グラフィカルなウォッチ ウィンドウを構築することです。したがって、式の結果の値をデバッグ エンジンからフェッチする必要があります。
評価は正常に機能します
ここでの最初の問題: Visual Studio 2013ParseText()
ではエラーが正しく報告されません。ただし、IDebugProperty2
取得したものは有効です (有効な式の場合)。VS2012 では、無効な式に対して適切なエラーが発生します。
ここから本当の問題が始まります。結果の Property2 は、複雑なカスタム オブジェクトを表します。それを視覚化するには、その基本クラスの 1 つから特定のプロパティを取得する必要があります。私の現在の試みではIDebugProperty2.EnumChildren()
、Visual Studio の [ローカル] ウィンドウで行うのと同じように、メンバーをクラス階層の適切な場所まで移動するために使用しています。
これは何とか機能しますが、次の問題が発生します。
問題 1: 複雑なオブジェクトの内部メンバーを取得する
EnumChildren() から受け取ったメンバーとその順序は、いくつかの要因に依存しているように見えますが、それは私には明らかではありません: * オブジェクトに Debug Visualizer が接続されていますか? (VS2013 は EnumChildren の enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_VALUE_RAW を無視し、美化されたバージョン + 「Raw View」ノードを返します。VS2012 は期待どおりに動作します) *「非公開メンバー」ノードは表示されていますか? ある場合もあるし、ない場合もある - 依存するものからはわからない?
これは、複雑な式の結果オブジェクトの内部メンバーを取得する非常にハックな方法であることが判明しました。より良い方法は何ですか?IDebugProperty3 といくつかのデバッガ ビジュアライザのトリックを使用していますか? どんなポインタでも素晴らしいでしょう。
問題 2: VS2012 がメモリ バイトの提供に失敗する
結果オブジェクトのプライベート メンバーをIDebugProperty2.GetMemoryBytes()
取得したら、その値 (プレーンな System.Array) を「シリアル化」し、カスタム ツール ウィンドウに転送するために使用します。これは VS2013 では機能しますが、VS2012 ではIDebugProperty2.GetMemoryBytes()
常に VS_Constants.S_FALSE を返します。私はここで本当にアイデアがありません。VS2012 にはメモリ ウィンドウがあるため、ここでもこれを機能させる方法が必要ですか? 私は何が欠けていますか?
メモリ API のクエリに使用されるコード:
もう少しコンテキスト:
visual-studio-2012 - 現在のウィンドウの VsDropdownBarClass インスタンスを取得するにはどうすればよいですか?
Visual Studio 2012 Pro を使用して Visual Studio 拡張機能を作成するために MEF を使用しています。現在のウィンドウのドロップダウン バーのMicrosoft.VisualStudio.TextManager.Interop.VsDropdownBarClassインスタンスにアクセスしたいと思います。
これは Visual Studio 拡張機能で可能ですか? 私が見つけたいくつかのドロップダウン バーの例はすべて、ウィンドウの既存のドロップダウン バーにアクセスするのではなく、新しい言語サービスの一部としてドロップダウン バーを作成することを扱っています。
digital-signature - Visual Studio パッケージ (および VSIX 自体) のコンテンツへの署名
私は Visual Studio パッケージ プロジェクトを持っています。コンパイルすると DLL が作成され、その DLL は .VSIX ファイル内に配置されます (ダブルクリックしてインストールします)。
DLL に署名し、VSIX が署名されていることを確認します。
Signing VSIX Packagesを見てきましたが、これはあまり役に立ちません (または、私はばかげている可能性があります!)
また、コードを使用してパッケージをゼロから作成し、すべてのコンテンツに署名する必要があると思われるデジタル署名サンプルを使用してパッケージを作成することも確認しました。パッケージをビルドして作成する MsBuild プロセスを介して署名できることを (おそらく素朴に) 期待していました。
VSIX に追加する前に署名ターゲットを呼び出して DLL に署名できるようにするための MSBuild の適切なフックと、VSIX 自体に署名する方法を教えていただければ幸いです。
c# - 実行時にカスタム EditorFormatDefinition をエクスポートする
私が作成した Visual Studio 拡張機能では、Visual Studio エディター内でメソッド呼び出しを強調表示する必要があります。例えば:
HSV カラーを使用して、一意の呼び出しの数に応じてカラー スペクトルを分割したいと考えています。
各色を独自の EditorFormatDefinition としてエクスポートすると、強調表示を実現できます。
ただし、これには、使用するすべての色を事前に手動で設定する必要があります。EditorFormatDefinitions
実行時にエクスポートする方法はありますか?
IContentTypeRegistryService などの特定のレジストリでは、IClassificationTypeRegistryService
実行時に新しいコンテンツ タイプと分類を作成できます。用の同様の API はありますかEditorFormatDefinitions
。
EditorFormatDefinition
または、 Visual Studio 内でMEF を動的にエクスポートすることは可能ですか?
c# - Visual Studio 拡張機能を自動的に更新する
新しいバージョンが Visual Studio ギャラリーにプッシュされると、拡張機能が自動的に更新されるようにしようとしています。これを達成する方法についていくつかのガイドがありますが、それらは数年前のものであり、適用できない場合があります.
IVsExtensionRepository
まず、次のようにクエリを実行しようとしています。
サーバーから例外を受け取りましQuery_ExecuteCompleted
た: 「リモート サーバーがエラーを返しました: (400) 不正な要求」
スタック トレースが提供されます。
サーバー スタック トレース: System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult の結果) で System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult の結果) で System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object) [] outs、IAsyncResult 結果) System.ServiceModel.Channels.ServiceChannelProxy.InvokeEndService(IMethodCallMessage methodCall、ProxyOperationRuntime 操作) で System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage メッセージ)
このサービスは、https ://visualstudiogallery.msdn.microsoft.com/services/dev12/extension.svc でホストされています。
Visual Studio ギャラリーから自動的に更新される Visual Studio 拡張機能を作成する方法を知っている人はいますか? または手動IVsExtensionRepository
で?
visual-studio - Visual Studio 拡張機能: ビルド エラー VSSDK1043: "VSIX 識別子を持つ拡張機能を見つける際に問題が発生しました..."
拡張機能をデバッグしようとしていますが、突然ビルドできなくなりました。
エラー 1 "1cdefdc6-1f5e-4027-9bb7-773248c65070" の VSIX 識別子を持つ拡張子を見つける際に問題が発生しました。パスに不正な文字があります。
行ったすべての変更をロールバックしましたが、それでもエラーが発生します。構成を変更したとは思いません。
これは次の重複ではありません: VSIX パッケージのビルドが理由を表示せずに失敗しました (Visual Studio のバグ)既にこれらの提案を試しました。
私が無効にした場合
デバッグ用に VSIX コンテンツを実験用インスタンスにデプロイする
コンパイルはできますが、デバッグできません。
製品 ID の変更も機能しますが、これは、既存の製品を更新できなくなることを意味します。
visual-studio-2015 - VSIX コマンドから Roslyn を呼び出す
EnvDTE.ProjectItem から Roslyn の SyntaxTree を取得する最良の方法は何ですか? 別の方法 (Roslyn のドキュメントを ProjectItem に変換) の方法を見つけました。
開いているドキュメントから呼び出される VSIX コマンドを取得しました。そこで Roslyn の構文ツリーを試してみたいと思います。
このコードは機能しますが、私にはぎこちなく見えます:
アクティブなドキュメントから Roslyn のドキュメントを取得するより良い方法はありますか?
visual-studio - Visual Studio Package でのプロセスへのアタッチ
デバッガーを名前付きプロセスにアタッチする Visual Studio パッケージを作成しようとしています。
パッケージで次のコードを使用しています。
ただし、次の役に立たないエラーが表示されます。
プロセスが開始されていない場合、このエラーが発生するため、コードは明らかに何かを実行しています
プロセスは管理された .net 4 プロセスであり、VS UI を介して接続できます。
文脈上、私はVS 2010で同じ仕事をするために使用していた単純なマクロを置き換えようとしていますが、それは明らかに新しいバージョンのVisual Studioでは実行できません。
c# - Visual Studio Package のメニュー コマンドで作成したコンテキスト メニュー項目が cshtml ファイルに表示されない
メニュー コマンドを作成しましたが、以下に示すように .cs ファイルで正常に動作します。
最後から 2 番目の項目「Build this project」が作成された項目です。
しかし、cshtml ファイルで試してみると、この項目は表示されません。
vsct ファイルの Groups セクションに問題があると思われます。
メニュー項目を IDM_VS_CTXT_CODEWIN の子として設定しています
同様の問題を探していると、Microsoft VsMenus ページを見つけました: https://msdn.microsoft.com/en-us/library/bb163231(v=vs.100)
このページでは、メニュー項目の別の親が見つかりませんでした。
私の目標は、VS のエディターのコンテキスト メニューで、このメニュー項目からアクティブなドキュメントのプロジェクトを直接構築することです。
誰かが私を助けることができますか?
ありがとう