Visual Studio 2012项目文件“”已重命名或不再在解决方案中

时间:2013-01-28 23:54:45

标签: c++ visual-studio visual-studio-2012

我最近升级了我的IDE,但不是我的编译器从VS2010升级到VS2012,现在我遇到了我的一个解决方案的问题。当我尝试构建它时,我得到以下消息。

  

项目文件已重命名或不再出现在解决方案中

当我尝试构建单个项目时,我会收到消息

  

构建已在进行中

我尝试删除并重新添加所有项目,但这没有用。我甚至创建了一个包含所有相同项目的全新解决方案,但是当我尝试构建时,我得到了与原始解决方案相同的错误。

我读过很多人都有类似的问题,但到目前为止他们的解决方案都没有帮助我。

一个建议是看看是否有任何项目缺少参考,但我不完全确定如何去做。

我尝试删除引用并重新添加它们,但每次我尝试重新添加它们时都会出现相同的错误“项目文件已被重命名或已不在解决方案中”

任何帮助或建议都会很棒!

9 个答案:

答案 0 :(得分:66)

我遇到了同样的问题,并通过确保其他项目引用的每个项目都包含在解决方案中来解决它。

右键单击第一个项目,选择References ...并确保包含References下列出的每个项目。转到下一步并执行相同操作。

这解决了我的问题,“项目文件''已重命名或不再在解决方案中”。不确定“构建是否已在进行中”的问题。

答案 1 :(得分:9)

我可以确认_mantrill的情景。 (发布作为答案,因为这不适合评论。)

在我的解决方案中,项目A引用了项目B.出于某种原因,项目B的项目GUID已更改。 (我知道这可能发生,我没有调查在我们的情况下导致它的原因。)解决方案文件具有项目B的正确的新GUID,但是在项目A的项目文件中,对项目B的引用仍然具有旧的GUID。

通过在解决方案资源管理器中卸载和重新加载项目,我发现项目A导致“项目文件”已重命名或不再在解决方案中。“找到后,手动更新项目B项目文件中的项目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 - 之前,导致“项目文件''已重命名或已不在解决方案中。

<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>

答案 2 :(得分:2)

当我有两个针对不同产品的解决方案文件但是有几个共同的项目时,我似乎遇到了这个问题。这些是我在VS2012首次开放的VS2010项目。打开第一个项目时,所有项目都已转换。然后在加载第二个问题时出现问题,因为某些项目已经被转换。似乎项目引用已在第一个解决方案中更新,但是对于第二个解决方案,它必须处理更新某些项目,但使用已更新的常见项目版本。

最后,要解决它,我必须删除然后重新添加几个项目(以及项目引用),这似乎可以解决它。同样值得删除构建文件夹和其他临时文件(例如.suo),因为某些文件的状态会影响项目引用问题(我真的没想到)。

答案 3 :(得分:2)

此问题通常由项目版本转换器引起。

协议是解决方案中的引用项目不再是解决方案(正如我所说,原因是转换或手动删除时出现问题)。 / p>

所以你必须看到所有项目引用Right click on the project -> "References...")和检查解决方案中是否存在每个引用的项目 - 否则将缺少的项目添加到解决方案中或删除修饰符无效。

这个awnser基于现有的awnser: https://stackoverflow.com/a/14722733/1107020

答案 4 :(得分:2)

删除.suo并重新加载后从VSO移动到现场TFS有一些问题

The project file has been moved renamed or not on your computer

答案 5 :(得分:1)

恰好一次,起初我不相信这些措施&#34;确保那里的所有参考文献&#34;很成功。

最后,我尝试检查所有项目,尤其是解决方案I中的Web项目, 说真的没有用。我删除了引用,瞧,它有效!

答案 6 :(得分:0)

我有相同的症状,但原因非常不同,因此也有分辨率。

从VS 2003迁移=&gt; 2005&GT; =&GT; 2008 =&gt; 2010 =&gt; 2012年,在最后一步, Resources.resx 文件消失了。因此消息

  

&#34;项目文件&#39;&#39;已重命名或已不再使用   。溶液&#34;

对我而言,它不是&#34; 项目文件&#34;,而是&#34; 项目文件&#34;。 (有些人说语法并不重要。)

我找到了缺少的 Resources.resx 文件,一切都很适合我。

答案 7 :(得分:0)

将项目复制到另一个文件夹并重新打开时,我遇到了问题 最后我通过以下方式解决了这个问题: 1.右键单击项目 2.打开参考选项 3.删除页面中的参考项目

答案 8 :(得分:0)

确保解决方案中的所有项目文件(* .vcxproj)都在其中定义了匹配的GUID,如下所示:

<PropertyGroup Label="Globals">
    <ProjectGuid>{B4D8DE30-8DCC-85FC-ABFE-3ED6S9F873C0}</ProjectGuid>
</PropertyGroup>

出于某些奇怪的原因,从VS2008转换而来的项目并没有这样,VS2010坚持要更换所有项目&#39;每次加载解决方案时,解决方案文件中的GUID ,但从未实际添加项目文件