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 类别包含对话框和工具窗口、打印机和文本编辑器页面。您可以使用注册表编辑器查看注册表。

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

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

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

于 2012-07-10T03:07:38.817 回答