我可以确认 the_mantrill 的情况。(作为答案发布,因为这不适合评论。)
在我的解决方案中,项目 A 引用了项目 B。出于某种原因,项目 B 的项目 GUID 发生了变化。(我知道这可能会发生,我没有调查在我们的案例中是什么原因造成的。)解决方案文件具有项目 B 的正确新 GUID,但在项目 A 的项目文件中,对项目 B 的引用仍然具有旧 GUID。
通过在解决方案资源管理器中卸载和重新加载项目,我发现项目 A 导致“项目文件已被重命名或不再在解决方案中。 ”一旦发现,手动更新项目 B 在项目 A 的项目文件中的 GUID 修复了问题。
细节:
项目B.vcxproj
<PropertyGroup Label="Globals">
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{9CF2493A-0C79-88E7-12ED-7DFAEBA8535B}</ProjectGuid>
</PropertyGroup>
在过去的某个时候,ProjectB 的 ProjectGuid 曾经是{d6f1934a-905f-77ca-49c0-164b2171a0f6}
. 现在是{9CF2493A-0C79-88E7-12ED-7DFAEBA8535B}
。
ProjectA.vcxproj – 之前,导致“项目文件 '' 已重命名或不再在解决方案中。 ”
<ItemGroup>
<ProjectReference Include="..\ProjectB\ProjectB.vcxproj">
<Project>{d6f1934a-905f-77ca-49c0-164b2171a0f6}</Project>
</ProjectReference>
:
</ItemGroup>
ProjectA.vcxproj – 手动编辑后,现在可以使用:
<ItemGroup>
<ProjectReference Include="..\ProjectB\ProjectB.vcxproj">
<Project>{9CF2493A-0C79-88E7-12ED-7DFAEBA8535B}</Project>
</ProjectReference>
:
</ItemGroup>