我可以确认_the_mantrill的情况。(发布为答案,因为这不适合作为评论。)
在我的解决方案中,Project A引用了Project B。由于某种原因,Project B的GUID发生了变化(我知道这可能会发生,但我没有调查我们的情况是什么导致的)。解决方案文件中有Project B的正确新GUID,但在Project A的项目文件中,对Project B的引用仍然具有旧的GUID。
通过在解决方案资源管理器中卸载和重新加载项目,我发现Project A导致“
项目文件''已重命名或不再在解决方案中。”一旦找到,手动更新Project A项目文件中的Project B GUID即可解决问题。
细节:
ProjectB.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文件之前的名称被修改或已不在解决方案中,会导致出现"The project file '' has been renamed or is no longer in the solution."错误信息。
<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>