つまり、Visual Studio 2012 Express の各エディションの実行可能ファイル名とInstallDir キーへのレジストリ パスを探しています。
それらは (マイナス RC ラベル)
- Windows 8 用の Visual Studio Express 2012
- Web 用 Microsoft Visual Studio Express 2012
- Visual Studio Team Foundation Server Express 2012
レジストリ パスは HKLM ハイブにあり、次のようになります。
{HKLM}\SOFTWARE\Microsoft\????\11.0
以前のバージョンの VS Express に問題がある場合、実行可能ファイルの名前はおそらくエディションごとに異なります。
完全を期すために、2002 年から 2012 年までの以前のバージョンの Visual Studio .Net のedition number
、version
、solution version
およびを次に示します。HKLM relative registry path
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");
}