slnファイルからのプロジェクトGUIDのリストがあります。
プログラムで各GUIDに対応するプロジェクトを見つける必要があります。
これどうやってするの?
プロジェクト GUID は、次のように .sln ファイル内にプロジェクト名とともに保存されます。
Project("{Project Type GUID}") = "MyProject",
"Source\MyProject\MyProject.vbproj",
"{AB5BA87B-77D5-4812-B02C-9B4FB87F4EF6}" EndProject
理論的には、ソリューション ファイルを事前に解析し、プロジェクトと GUID の関連付けのマップを作成できます。そのマップが確立されると、プロジェクトの GUID への参照を実際のプロジェクト名と簡単に交換できるはずです。
注: プロジェクト ファイルに表示される最初の GUID は、実際のプロジェクトではなく、プロジェクト タイプのものです。これは、Visual Studio がファイルを開いて操作するときに使用するテンプレートを管理するのに役立ちます。この場合に必要なものは{AB5BA87B-77D5-4812-B02C-9B4FB87F4EF6}です。
Visual Studioのセットアップはすべて、レジストリの次のようなキーにあります。
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\[Version]
バージョンは「9.0」(VS2008)、「10.0」(VS 2010)、「11.0」(VS 2012)のようになりますが、Visual Studioはカスタムの「ハイブ」キーで起動できるため、他のバージョンにすることもできます(を参照)。 devenv.exeコマンドラインの/RootSuffixパラメーター)。
したがって、通常の操作では、プロジェクトGUIDは次の場所にあります。
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\[Version]\Projects
Visual Studioのプロジェクトは、標準プロジェクト(C#、VB.NETなど)または集約プロジェクト(C#またはVB.NET上のWPF「フレーバー」)にすることができます。
一般に、プロジェクトには、プロジェクトの種類を含むVisual Studioパッケージ(バイナリ)のGUIDを含む「パッケージ」キーがあります。
パッケージの説明はここにあります:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\[Version]\Packages
ネイティブパッケージ(C#、VB.NET、C ++、...)はネイティブCOMサーバーとして実装され、パスはInprocServer32
キーで定義されます。管理対象パッケージはMSCOREE.DLLをInprocServer32
キーとして定義します。また、パッケージがGACになく、パッケージCodeBase
がGACにある場合にのみAssembly
キーとなるキーもあります。