获取Visual Studio 2010扩展中的默认项目目录

时间:2012-07-08 22:50:23

标签: c# visual-studio-2010 visual-studio-2010-sp1 visual-studio-extensions visual-studio-sdk

如何从Visual Studio 2010扩展程序中获取默认项目创建目录?默认情况下,此目录为:

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

我猜这是通过Tools-&gt;选项窗口完成的,但我不知道如何通过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))

1 个答案:

答案 0 :(得分:7)

找到它:
http://msdn.microsoft.com/en-us/library/ms165642.aspx

  

Visual Studio运行一次后,Visual Studio当前实例的属性项名称存储在以下Windows注册表项中:HKCU \ SOFTWARE \ Microsoft \ VisualStudio \ 10.0_Config \ AutomationProperties。此位置始终具有明确的名称列表。类别名称是AutomationProperties键(Database Tools,FontsAndColors等)的子键的名称。页面名称是   类别键的子键的名称。例如,FontsAndColors类别包含Dialogs和Tool Windows,Printer和TextEditor页面。您可以使用以下命令查看注册表   注册表编辑。

以下是获取我正在寻找的值的代码:

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

请注意,注册表中的值与您在Visual Studio中看到的值不匹配,因此需要一些小的侦探工作才能获得您正在寻找的确切值。我认为由于向后兼容性,它是以这种方式设置的。