Для чего используются GUID проекта в файле решения Visual Studio? - PullRequest
46 голосов
/ 24 февраля 2010

У меня есть несколько проектов в одном решении Visual Studio (2008).
Я только что обнаружил, что каждый из этих проектов использует один и тот же GUID, поэтому в файле решения это выглядит так:

Project("{FAE04EC0-F103-D311-BF4B-00C04FCBFE97}") = "Pro1", "Pro1\Pro1.csproj", "{...}"
Project("{FAE04EC0-F103-D311-BF4B-00C04FCBFE97}") = "Pro2", "Pro2\Pro2.csproj", "{...}"

Нужно ли менять эти GUID, чтобы они были уникальными и для чего они используются?

Ответы [ 5 ]

58 голосов
/ 24 февраля 2010

Блок сохраняемости проекта в файле решения имеет следующий формат:

Project("{project type GUID}") = "<Project name>", "<project file location>", 
    "{<Unique project GUID>}"
EndProject

Таким образом, ожидается, что первый GUID не является уникальным, он однозначно идентифицирует пакет Visual Studio, который обрабатывает проекты такого типа.

Отправленный вами GUID интересен - он выглядит как искаженный GUID проекта C #, а именно FAE04EC0-301F-11D3-BF4B-00C04F79EFBC. Вы изменили его самостоятельно или это проблема публикации (например, вы используете язык справа налево, например иврит или арабский).

19 голосов
/ 26 июня 2013

Я часто копирую файл проекта VS, переименовываю его, ищу и заменяю все вхождения имени проекта, чтобы создать новый проект с такими же настройками. Это часто быстрее, чем создание нового проекта, а затем проверка правильности всех настроек. Я игнорирую GUID. VS изменит GUID, как только я сохраню проект после добавления его в решение.

Я много занимаюсь разработкой DLL / C / C ++, и за прошедшие годы я значительно отклонился от стандартных настроек проекта (особенно в отношении оптимизации, генерации кода и т. Д.), И я считаю, что техника копирования - более быстрый и надежный настройка проекта.

10 голосов
/ 07 марта 2015

Первый гид - это тип проекта. Руководства по типам проектов можно найти здесь ...

http://www.codeproject.com/Reference/720512/List-of-Visual-Studio-Project-Type-GUIDs

3 голосов
/ 24 февраля 2010

Руководства проекта в файле csproj должны быть уникальными. По моему опыту, если два файла csproj включены в одно и то же решение, то Visual Studio автоматически восстанавливает одну из направляющих.

1 голос
/ 01 июля 2014

Слово мудрому: если вы создаете проект XBOX360 XNA 4.0 и пытаетесь использовать этот трюк, Не используйте guid, сгенерированный VS 2012 . сгенерируйте один в VS2010 и используйте это .

В противном случае вы получите следующее сообщение об ошибке при попытке запустить проект с повторным наведением в XNA Game Studio Connect.

«Эта игра отсутствует или повреждена, бла-бла-бла, перезапустите XNA Game Studio Connect?»

и тогда он будет бомбить. Направляющие VS 2010 работают нормально. Понятия не имею почему.

...