如何在Visual Studio 2013 中获取默认项目目录

How to get the default project directory in Visual Studio 2013

我正在尝试设置一个安装程序,将我制作的压缩导出项目模板复制到默认项目目录的项目模板文件夹中,因为这似乎是在新建项目向导中合并自定义模板的最简单方法。

对于大多数人来说,位置将是 %USERPROFILE%\Documents\Visual Studio 2013\Templates\ProjectTemplates,但我很确定这不能保证,或者至少不是静态的。

有没有一种方法可以通过宏或以编程方式检索此信息?如果只是后者的话,C#和C++作为示例是首选

您可以从注册表中读取它们:

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio.0

这些在键下:

"UserItemTemplatesLocation" 和 "UserProjectTemplatesLocation".

取决于您使用的安装程序技术,但例如 WiX,有 RegistrySearch 元素允许您即时读取注册表值,并将文件复制到特定位置。

不清楚你到底在看什么(你的标题想要项目文件夹,但你说的是模板文件夹),还有 "VisualStudioProjectsLocation" 注册表项

OP,在这里。我正在共享一个迷你 C# 程序,以帮助您在控制台应用程序中获取此信息。 Chris 的回答正是我要找的,所以如果你不使用 WiX,就使用这个节省时间的方法:

using System;
using Microsoft.Win32;

namespace FindDefaultProjectTemplates
{
    class Program
    {
        static void Main(string[] args)
        {
            RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\VisualStudio.0");
            Object obj = key.GetValue("UserProjectTemplatesLocation");
            Console.WriteLine(obj);
            Console.ReadLine();
        }
    }
}