GUID в файле SLN - PullRequest
       29

GUID в файле SLN

13 голосов
/ 10 сентября 2008

Файлы Visual Studio Solution содержат два идентификатора GUID для каждой записи проекта. Я думаю, один из них из AssemblyInfo.cs

Кто-нибудь знает наверняка, откуда они берутся и для чего они используются?

Ответы [ 2 ]

14 голосов
/ 10 сентября 2008

Ни один GUID не является тем же GUID, что и из AssemblyInfo.cs (то есть 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
6 голосов
/ 10 сентября 2008

Согласно MSDN :

[Оператор Project] содержит уникальный GUID проекта и проект введите GUID. Эта информация используется среда для поиска проекта файл или файлы, принадлежащие решение и VSPackage требуется для каждого проекта. GUID проекта передается в IVsProjectFactory для загрузки конкретный VSPackage, связанный с проект, затем проект загружается VSPackage.

...