Мне было трудно найти этот конкретный пост при поиске ответа, поэтому я просто хотел добавить несколько ключевых слов и пояснений, чтобы их было легче найти.Благодаря фантастическим ответам Дэниэла и tgb я смог решить эту проблему, и у меня и моей команды больше нет конфликтующих файлов решений после открытия Visual Studio 2010 (я бы проголосовал за их ответы, но я только что присоединился сегодня и пока не имеюрепутации достаточно, чтобы голосовать за ответы ...).
Итак, чтобы задать вопрос несколькими способами: Почему Visual Studio изменяет .sln файлы при открытии решения? Почему файлы .sln имеют локальные изменения? или Что вызывает конфликты слияния в файлах решения Visual Studio?
Ответ: Скорее всего, другой или отсутствующий атрибут ProjectGuid вФайл проекта .vcxproj будет вызывать локальные изменения.Это может произойти из-за обновления проектов из предыдущих версий Visual Studio или просто из-за ручного копирования файла проекта и редактирования его частей.
Исправление заключается в добавлении строки:
<ProjectGuid>{###}</ProjectGuid>
(с соответствующим идентификатором из файла решения вместо ###) в файл .vcxproj в узле 'PropertyGroup Label = "Globals", например:
<PropertyGroup Label="Globals">
<ProjectGuid>{FD0675C0-EC06-E665-4001-12DEE6694605}</ProjectGuid>
<RootNamespace>MyProject</RootNamespace>
</PropertyGroup>
В противном случае Visual Studio простоназначьте новый случайный ProjectGuid для каждого проекта и обновите файл .sln.«ProjectGuid» можно легко найти для данного проекта в файле .sln:
Project("{<Filter#>}") = "MyProjName", "src\to\Proj.vcxproj", "{<ProjectGuid>}"