Подтвердить что ты не робот

GUID в файле SLN

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

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

4b9b3361

Ответ 1

Ни один 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

Ответ 2

Согласно MSDN:

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