こんにちは、特定の種類のファイルを右クリックすると、ソリューション エクスプローラーにコンテキスト メニューを作成するビジュアル スタジオ パッケージを作成しています。メニューは機能していますが、ファイル名ではなくフル パスを取得する必要があります。これは、コンテキスト メニューでオプションを選択すると、フル パスをパラメーターとして受け取るコマンドライン プログラムが開くためです。
現在、次のようになっています。
foreach (var ItemSelected in vsItemSelections)
{
object value;
hierarchy.GetProperty(ItemSelected.itemid, (int) __VSHPROPID.VSHPROPID_Name, out value);
if (value != null && value.ToString().EndsWith(".rst"))
{
cmd.Visible = true;
}
else
{
cmd.Visible = false;
break;
}
}
したがって、.rst ファイルが選択されている場合は、コンテキスト メニューにコマンドを表示できますが、明らかにフル パスが必要です。考えられることはすべて試しましたが、これは私にとってまったく新しい分野です。
ENVDTE80.DTE アプリケーション オブジェクトを使用して既に動作するソリューションがありますが、実行すると非常に扱いにくいように見えます。