如何从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))
答案 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中看到的值不匹配,因此需要一些小的侦探工作才能获得您正在寻找的确切值。我认为由于向后兼容性,它是以这种方式设置的。