4

Visual Studio 2010拡張機能内からデフォルトのプロジェクト作成ディレクトリを取得するにはどうすればよいですか?デフォルトでは、このディレクトリは次のとおりです。

C:\Users\<username>\Documents\Visual Studio 2010\Projects

これは[ツール]->[オプション]ウィンドウから実行されると思いますが、SDKからこれを取得する方法がわかりません。

一見すると、次のように見えます。

DTE2 dte = CType(GetService(typeof(SDTE)), DTE2);
Object props = dte.Properties("Projects and Solutions", "General");

しかし、次のエラーが発生します。

System.Runtime.InteropServices.COMException was unhandled by user code
ErrorCode=-2147352565
Message=Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))
4

1 に答える 1

8

見つかりました:http:
//msdn.microsoft.com/en-us/library/ms165642.aspx

Visual Studioが一度実行されると、Visual Studioの現在のインスタンスのプロパティアイテム名が次のWindowsレジストリキーに保存されます:HKCU \ SOFTWARE \ Microsoft \ VisualStudio \ 10.0_Config\AutomationProperties。この場所には常に名前の決定的なリストがあります。カテゴリ名は、AutomationPropertiesキーのサブキー(データベースツール、FontsAndColorsなど)の名前です。ページ名は、カテゴリキーのサブキーの名前です。たとえば、FontsAndColorsカテゴリには、ダイアログとツールのWindows、プリンタ、およびTextEditorページが含まれます。レジストリエディタを使用してレジストリを表示できます。

そして、これが私が探している値を取得するためのコードです:

string defaultProjectPath = (string)(DTE.Properties("Environment", "ProjectsAndSolution").Item["ProjectsLocation"].Value);

レジストリの値がVisualStudioに表示される値と一致しないため、探している正確な値を取得するには、少しの探偵作業が必要であることに注意してください。下位互換性のため、このように設定されていると思います。

于 2012-07-10T03:07:38.817 に答える