問題タブ [envdte]
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.
t4 - T4 テンプレートを使用して ViewModel を生成する
私の考えでは、これは素晴らしいアイデアのように思えます。EnvDTE を使用するとこれも可能になるのに、これに関する例が他にないのはなぜですか?
多分私はこれを行うことの欠点を見逃しています...?
優れた T4 および EnvDTE リソースへのポインタは、すばらしいものです。:)
visual-studio - Visual Studio マクロ - ソリューションのオープン、クローズ、ビルドなどのタイムスタンプのログ記録
開くのに時間がかかる解決策があります。(5 分) 私たちのプロセスと手順のせいで、私は常に同じソリューションの異なるブランチ間を行き来しています。私は、同じソリューションのさまざまなバリエーションを 1 日に数回以上閉じてロードしています。これには 15 分以上かかります。Visual Studio を待っているだけで 30 分が無駄になりました。私は時代遅れのコンピュータ ハードウェアが原因であると非難しています。ソリューションの読み込みにかかる時間と、ビルドにかかる時間の指標を取得したいと考えています。私の目標は、これらの指標を経営陣に提示することです。
この情報を追跡するために Visual Studio マクロを使用しています。
現時点では、EnvDTE.SolutionEvents.BeforeClosing、EnvDTE.SolutionEvents.AfterClosing、EnvDTE.SolutionEvents.Opened の 3 つのイベントのタイム スタンプを記録しています。
問題は、ソリューション全体が読み込まれた後に SolutionEvents.Opened が発生することです。ソリューションの読み込みを開始したときと終了したときのタイムスタンプを生成する必要があります。
Visual Studio がソリューションの読み込みを開始するタイミングを確認するにはどうすればよいですか? ロードが完了したときと比較できるように。
以下は私のコードです (私の LogWithTimeStamp() 関数は、現在のタイムスタンプをプレフィックスとしてファイルに文字列を書き込むだけです:
visual-studio-2010 - dte.Solution.SolutionBuild.StartupProjects が変更されたときにトリガーされるイベントはありますか?
社内で使用する Visual Studio 2010 アドインを構築しています。メイン ウィンドウのキャプションをカスタマイズして、現在のスタートアップ プロジェクトの名前を表示したいと考えています。次のコードを使用して、メイン ウィンドウのキャプションを設定できます。
ウィンドウが作成またはアクティブ化されるたびにこのコードを実行できますが、ユーザーがソリューション エクスプローラー (またはアドイン) でスタートアップ プロジェクトを変更し、Visual Studio の別のウィンドウに移動しない場合、キャプションは更新されません。変更が行われ次第、キャプションを更新したいと思います。
visual-studio - EnvDTEのDebugger.GetExpressionメソッドで、「UseAutoExpandRules」は正確にはどういう意味ですか?
ドキュメントでは、このパラメーターは「自動拡張ルールを使用する必要がある場合はtrue、それ以外の場合はfalse」である必要があると痛烈に説明していますが、正確にはどういう意味ですか?
オンラインで説明が見つからないようです。
c# - DTE を使用して Project VS 2008 をビルド/再ビルドする
DTE.ExecuteCommand を使用してプロジェクト csproj をビルドおよび再ビルドするにはどうすればよいですか?
DTE のすべてのコマンドの参照はありますか?
解決策として、私はこれを使用します:
私はこれを使用してみます:
しかし、「コマンド \"Build.BuildOnlyProject\" は使用できません」というエラーが表示されます。
properties - EnvDTE.Property.set_Value を使用して ProjectItem FullPath プロパティを設定する際の問題
テンプレートから選択したファイルの FullPath プロパティをオーバーライドするように VC# プロジェクトを構成しようとする Visual Studio プロジェクト ウィザードがあります。
次のコードは、関数内から使用されます
public void ProjectFinishedGenerating(プロジェクト プロジェクト)
System.Reflection.TargetParameterCountException: パラメーターの数が無効です。(HRESULT からの例外: 0x8002000E (DISP_E_BADPARAMCOUNT)) EnvDTE.Property.set_Value (オブジェクト lppvReturn) で
元の値を表示できるので、有効な ProjectItem オブジェクトがあることがわかります。
c# - EnvDTE.Expression - DataMembers の内部名をプログラムで取得する
C# コード行があるとします。
var myList = 新しいリスト {1,2,3};
そして、「myList」をウォッチ ウィンドウに配置し、リストの最初の項目を下にドラッグすると、ウォッチ ウィンドウは、このデータ メンバーの内部名を持つ新しい行を作成します。この場合は次のようになります。
(新しい System.Collections.Generic.Mscorlib_CollectionDebugView(myList)).Items[0]
私の質問は、EnvDTE の Expression の DataMember からこの内部名をプログラムで取得する方法はありますか?
どうもありがとう!
c# - Visual C#2010でDTE2オブジェクトの参照を取得する
Visual Studio 2010でC#でDTE2オブジェクトを使用して、現在のソリューションへの参照を取得したいと思います。
私は最初に次のコードを試しました:
しかし、2つのソリューションを開き、このコードが最初のソリューションにある場合、現在のソリューションへの参照ではなく、最後にロードしたソリューションへの参照を取得します。現在の解決策が必要です...
インターネットで検索したところ、VSPackageから現在のソリューションディレクトリを取得するにはどうすればよいですか?で次のソリューションを見つけました。:
しかし、これを使用すると、dteオブジェクトは常にNULLになります。
では、.net Framework 4.0でC#を使用してVS2010で現在のソリューションオブジェクトにアクセスするにはどうすればよいですか?
visual-studio - EnvDTE CodeClass.AddDelegate オーバーロード
同じ名前でパラメータが異なる 2 つのデリゲートを作成したい (オーバーロードされたデリゲート)。デリゲートを追加しようとすると、デリゲートが既に存在するため、2 回目の試行でエラーが発生します。最初に一時名で追加してからパラメーターを追加してから名前を変更して、署名が異なるようにしましたが、その名前のアイテムが既に存在するというエラーが表示されます。
オーバーロードされたデリゲートを追加するにはどうすればよいですか?
c# - 追加時に新しいファイルが開かないようにする
私は GAX プロジェクトを行っており、すべてのファイルをフォルダーから新しい "Solution Items" フォルダーに追加するアクションがあります。これは、必要なファイルをプロジェクト ルートに Local.testsettings などとして挿入するのに役立ちます。
私の問題は、ファイルを追加するとすぐに開くことです。.txt ファイルなどの場合、それほど悪くはありません。.testsettings ファイルの場合、すべてのプロセスをブロックするモーダル ウィンドウが開きます。
この開きを防ぐにはどうすればよいですか?mySolution.ProjectItems.AddFromFile(file) ステートメントの後にコードが実行されないため、ProjectItem.Document で .close を使用できません。
追加時にファイルが開かないようにする方法を知っている場合 (手動で追加したかコードで追加したかに関係なく)、知りたいです。
尋ねられた完全なコードは次のとおりです。
どうもありがとう!