2008-09-09 12 views
12

Visual Studioのソリューションファイルは、プロジェクトエントリごとに2つのGUIDのを含んでいます。私はこれらがどこから来た誰もが確かに知っていますそのうちの一つは、AssemblyInfo.csからのGUID

で把握し、彼らは何をするために使用されていますか?

+0

それについて取り組んで完全なソースコードサンプルを持つ任意の最終的な解決策? – Kiquenet

答えて

13

GUIDは、AssemblyInfo.csと同じGUIDではありません(アセンブリ自体のGUIDで、Visual Studioではなくビルドの最終製品です)。

ので、SLNファイル内の典型的な行(あなたがこれを見たい場合は、メモ帳やエディタ・オブ・チョイスでの.slnを開く)のために:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleSandbox", "ConsoleSandbox\ConsoleSandbox.csproj", "{55A1FD06-FB00-4F8A-9153-C432357F5CAC}" 

二GUID一意のGUIDのためには、プロジェクトそのもの。ソリューションファイルは、そのプロジェクトに他の設定をマップするために、これを使用しています。

GlobalSection(ProjectConfigurationPlatforms) = postSolution 
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Debug|Any CPU.Build.0 = Debug|Any CPU 
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Release|Any CPU.ActiveCfg = Release|Any CPU 
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Release|Any CPU.Build.0 = Release|Any CPU 

EndGlobalSection

最初のGUIDは、実際にソリューション自体の一意のGUID(私は信じている)であるGUIDです。あなたが複数のプロジェクトとソリューションを持っている場合は、実際には次のようなものが表示されます:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleSandbox", "ConsoleSandbox\ConsoleSandbox.csproj", "{55A1FD06-FB00-4F8A-9153-C432357F5CAC}" 
EndProject 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Composite", "..\CompositeWPF\Source\CAL\Composite\Composite.csproj", "{77138947-1D13-4E22-AEE0-5D0DD046CA34}" 
EndProject 
+0

slnファイルのC#での解析?それは残念ですが、slnファイルはXML形式ではありません。 @JasonOlson – Kiquenet

+5

最初のGUIDはプロジェクトの種類を示します(ここでは簡単に説明します)。http://msdn.microsoft.com/en-us/library/bb165951(v=vs.90).aspxまた、プロジェクトの種類のリストについては、http://www.mztools.com/Articles/2008/MZ2008017.aspxを参照してください。リンク@yoyoため – yoyo

+1

感謝を(ソリューションフォルダのための特別なGUIDがあります場合、私はまだ...思ったんだけど)。フォルダGUIDは{2150E333-8FDC-42A3-9474-1A3956D46DE8}であると思われます。 – Giles

6

According to MSDN

[Project]文は ユニークなプロジェクトのGUIDとプロジェクト タイプのGUIDが含まれています。この情報は ソリューションに属するプロジェクト つまたは複数のファイルを見つけるために 環境で使用され、VSPackageは、プロジェクトごとに を必要としていました。プロジェクトGUIDは で、IVSProjectFactoryに渡され、 プロジェクトに関連する特定のVSPackageをロードします。