Начиная с обновления до VS 2015, моя команда испытала случайные причудливые вещи, которые, я уверен, сейчас разрабатываются в Microsoft. Один из нас очень раздражает то, что мы, похоже, теряем проектные ссылки, особенно после разветвления. Вчера я начал работать над новой ветвью нашего решения, чтобы узнать, что типы были непризнаны, а имена пространства имен считаются ненужными (потому что они были для типов, которые внезапно стали непризнанными).
В ссылках в проекте не отображаются значки, указывающие на проблему с ссылкой, но чтобы убедиться, что это сработает, я удалил и повторно добавил ссылку на проект, что привело к тому, что его типы были распознаны еще раз.
Это, конечно, обновило файл проекта, поэтому я посмотрел, какие изменения были внесены. Единственное различие между проектом, который не смог обнаружить ссылку, и тот, который теперь может, состоит в том, что альфа-символы в GUID были изменены с нижнего регистра на верхний регистр. Например:
Старая, неработающая ссылка:
<ProjectReference Include="path/redacted">
<Project>{95d34b2e-2ceb-499e-ab9e-b644b0af710d}</Project>
<Name>Project.Name.Redacted</Name>
</ProjectReference>
Новая фиксированная ссылка:
<ProjectReference Include="path/redacted">
<Project>{95d34b2e-2ceb-499e-ab9e-b644b0af710d}</Project>
<Name>Project.Name.Redacted</Name>
</ProjectReference>
Я ищу причину, по которой это происходит, и как я могу ее исправить без необходимости вручную удалять и повторно добавлять ссылки повсюду (и без необходимости конвертировать все идентификаторы GUID проекта в верхний регистр).
Я должен отметить, что эти "сломанные" ссылки не нарушают сборку и что они отображаются только в списке ошибок как ошибка IntelliSense, а не строят ошибки. Итак, ссылки на самом деле не сломаны, они только что сломали IntelliSense (что, возможно, хуже?!).