1

Visual Studio 2012(またはそれ以下が望ましい)では、プロジェクトアイテムテンプレートを使用してプロジェクトルートに直接移動するのではなく、新しく作成したアイテムをファイルシステム内の特定のフォルダーに移動することはできますか?

ProjectItem.Save()andメソッドは、実装さSaveAs()れていない例外をスローします。

4

1 に答える 1

1

簡単な答えはノーです。vstemplateのみを使用してファイルをプロジェクトのサブフォルダーに送ることはできません。

VS拡張機能を記述してもかまわない場合は、ソリューションエクスプローラーの[新しいアイテムの追加]コマンドを独自の実装に置き換えることで、目的のサブフォルダーにファイルを作成するこのアプローチを試すことができます。

  1. [新しいアイテムの追加]コマンドを独自のイベントハンドラーでオーバーライドします(コマンドGUID:{5EFC7975-14BC-11CF-9B2B-00AA00573819}、ID:220)http://social.msdn.microsoft.com/Forums/eu/vsx / thread / c0e7de35-73d7-441a-979d-f5e359896b80
  2. イベントハンドラーで、ソリューションエクスプローラー階層のサブフォルダーを事前に選択します(http://social.msdn.microsoft.com/Forums/en/vsx/thread/0bef0d6e-c416-4e09-989f-5c2da7379e04を参照)
  3. IVsAddProjectItemDlg.AddProjectItemDlgメソッドを呼び出し、オプションでプロジェクトアイテムテンプレートをデフォルトの選択アイテムとして指定します(http://social.msdn.microsoft.com/Forums/en/vsx/thread/f24dd433-1522-47ad-bd02-067b13391527を参照) 。

このアプローチの欠点は、すべての新しいプロジェクトアイテムがプロジェクトサブフォルダーに追加されることです。これを回避するには、「新しいアイテムの追加」をオーバーライドする代わりに、ソリューションエクスプローラーに新しいコンテキストメニューコマンドを追加できます。

于 2012-08-10T07:49:08.080 に答える