自从升级到 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(可以说更糟?!)。