Visual Studio Express 2012版本 - 可执行文件名称和注册表路径?

3
简而言之,我正在寻找每个Visual Studio 2012 Express版本的可执行文件名称InstallDir键的注册表路径
它们是(减去RC标签):
- Visual Studio Express 2012 for Windows 8 - Microsoft Visual Studio Express 2012 for Web - Visual Studio Team Foundation Server Express 2012
注册表路径将在HKLM中,并且类似于:
{HKLM}\SOFTWARE\Microsoft\????\11.0
如果以前的VS Express版本是任何参考,可执行文件名称可能对于每个版本都不同。
为了完整起见,以下是从2002年到2012年的每个以前版本的Visual Studio .Net的版本号解决方案版本HKLM相对注册表路径
public class VSType
{
    public VSType(){}
    public VSType(string edition, string version, string solutionVersion, string hklmRegistryPath) {/*...*/}
    public static VSType VS2002 = new VSType("2002", "7.0", "7.00", "SOFTWARE\\Microsoft\\VisualStudio\\7.0");
    public static VSType VS2003 = new VSType("2003", "7.10", "8.00", "SOFTWARE\\Microsoft\\VisualStudio\\7.1");
    public static VSType VS2005 = new VSType("2005", "8.0", "9.00", "SOFTWARE\\Microsoft\\VisualStudio\\8.0");
    public static VSType VS2008 = new VSType("2008", "9.0", "10.00", "SOFTWARE\\Microsoft\\VisualStudio\\9.0");
    public static VSType VS2010 = new VSType("2010", "10.0", "11.00", "SOFTWARE\\Microsoft\\VisualStudio\\10.0");
    public static VSType VS2012 = new VSType("2012", "11.0", "12.00", "SOFTWARE\\Microsoft\\VisualStudio\\11.0");
}

public class VSExpressType : VSType
{
    public VSExpressType(VSType vsType, string name, string exeName, string hklmRegistryPath) {/*...*/}

    // 2005  ***********************************************************************
    public static VSExpressType VSExpress2005CSharp = new VSExpressType(VS2005,
        "Microsoft Visual C# 2005 Express Edition",
        "VCSExpress.exe",
        "SOFTWARE\\Microsoft\\VCSExpress\\8.0");

    public static VSExpressType VSExpress2005VB = new VSExpressType(VS2005,
        "Microsoft Visual Basic 2005 Express Edition",
        "vbexpress.exe",
        "SOFTWARE\\Microsoft\\VBExpress\\8.0");

    public static VSExpressType VSExpress2005Web = new VSExpressType(VS2005,
        "Microsoft Visual Web Developer 2005 Express Edition",
        "VWDExpress.exe",
        "SOFTWARE\\Microsoft\\VWDExpress\\8.0");

    // 2008  ***********************************************************************
    public static VSExpressType VSExpress2008CSharp = new VSExpressType(VS2008,
        "Microsoft Visual C# 2008 Express Edition",
        "VCSExpress.exe",
        "SOFTWARE\\Microsoft\\VCSExpress\\9.0");

    public static VSExpressType VSExpress2008VB = new VSExpressType(VS2008,
        "Microsoft Visual Basic 2008 Express Edition",
        "vbexpress.exe",
        "SOFTWARE\\Microsoft\\VBExpress\\9.0");

    public static VSExpressType VSExpress2008Web = new VSExpressType(VS2008,
        "Microsoft Visual Web Developer 2008 Express Edition",
        "VWDExpress.exe",
        "SOFTWARE\\Microsoft\\VWDExpress\\9.0");

    // 2010  ***********************************************************************
    public static VSExpressType VSExpress2010CSharp = new VSExpressType(VS2010,
        "Microsoft Visual C# 2010 Express Edition",
        "VCSExpress.exe",
        "SOFTWARE\\Microsoft\\VCSExpress\\10.0");

    public static VSExpressType VSExpress2010VB = new VSExpressType(VS2010,
        "Microsoft Visual Basic 2010 Express Edition",
        "vbexpress.exe",
        "SOFTWARE\\Microsoft\\VBExpress\\10.0");

    public static VSExpressType VSExpress2010Web = new VSExpressType(VS2010,
        "Microsoft Visual Web Developer 2010 Express Edition",
        "VWDExpress.exe",
        "SOFTWARE\\Microsoft\\VWDExpress\\10.0");

    // 2012 ***********************************************************************
    public static VSExpressType VSExpress2012WIn8 = new VSExpressType(VS2012,
        "Visual Studio Express 2012 for Windows 8",
        "EXENAME",
        "SOFTWARE\\Microsoft\\REGISTRYPATH");

    public static VSExpressType VSExpress2012Web = new VSExpressType(VS2012,
        "Microsoft Visual Studio Express 2012 for Web",
        "EXENAME",
        "SOFTWARE\\Microsoft\\REGISTRYPATH");

    public static VSExpressType VSExpressTFS2012 = new VSExpressType(VS2012,
                "Visual Studio Team Foundation Server Express 2012",
                "EXENAME",
                "SOFTWARE\\Microsoft\\REGISTRYPATH");
}

这有什么意义吗?这些是VS使用的私有注册表键,它们从不影响您开发的任何内容。尤其是Express版本,因为它们未经许可不支持插件。 - Hans Passant
关键是我能够使用InstallDir注册表项查找安装位置,从而确定安装了哪个版本的VS。 - Catch22
2个回答

4

Windows 8下的Visual Studio Express 2012

  • 可执行文件名: VSWinExpress.exe
  • 注册表路径: {HKLM}\\SOFTWARE\\Microsoft\\VSWinExpress\\11.0

面向Web的Microsoft Visual Studio Express 2012

  • 可执行文件名: VWDExpress.exe
  • 注册表路径: {HKLM}\\SOFTWARE\\Microsoft\\VWDExpress\\11.0

Visual Studio Team Foundation Server Express 2012

  • 管理控制台的可执行文件名为TfsMgmt.exe
  • 注册表路径: {HKLM}\\SOFTWARE\\Microsoft\\TeamFoundationServer\\11.0

请注意,TFS\11路径下没有直接的InstallDir。相反,有一个InstalledComponents节点,其中列出了安装的组件和每个组件的InstallPath键。

另外请注意,在64位PC上,这些键将在{HKLM}\\SOFTWARE\\Wow6432Node\\节点下。


根据我的经验,实际上这个应该在HKCU下而不是HKLM下。 - Tsahi Asher
存在HKLM和HKCU两个注册表项。 - Qwertie

0
  1. Windows Phone: "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\VPDExpress.exe"
  2. 桌面: "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\WDExpress.exe"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接