是什么导致Visual Studio 2017中的空文件名

时间:2017-10-10 17:19:18

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

我的一些项目无法正确加载文件。在解决方案资源管理器中,它们具有空文件名。我仍然可以正常编译和工作,但我无法从这个视图中打开它们。它说,“无法打开文件。”

Solution Explorer

如果我使用Show All Files展开视图,我可以看到它们存在但被认为是从项目中排除。这就像他们被包括在内并同时被排除在外。重新包括它们不起作用。

Showing All Files

项目和过滤器文件似乎没有损坏。我甚至手动编辑它们无济于事。以下是VCXPROJ文件的片段:

<ItemGroup>
  <ClCompile Include="JsonTest.cpp" />
  <ClCompile Include="NumberTest.cpp" />
  <ClCompile Include="stdafx.cpp">
    <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
    <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
    <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
    <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
  </ClCompile>
  <ClCompile Include="StringArrayTest.cpp" />
  <ClCompile Include="StringTest.cpp" />
  <ClCompile Include="WStringArrayTest.cpp" />
  <ClCompile Include="WStringTest.cpp" />
</ItemGroup>

这是.filters文件的类似相关摘录:

<ItemGroup>
  <ClCompile Include="stdafx.cpp">
    <Filter>Source Files</Filter>
  </ClCompile>
  <ClCompile Include="SrpString.cpp">
    <Filter>Source Files</Filter>
  </ClCompile>
  <ClCompile Include="SrpJson.cpp">
    <Filter>Source Files</Filter>
  </ClCompile>
  <ClCompile Include="SrpNumber.cpp">
    <Filter>Source Files</Filter>
  </ClCompile>
  <ClCompile Include="decNumber\decQuad.c">
    <Filter>DecNumber</Filter>
  </ClCompile>
</ItemGroup>

我已经尝试了很多东西来解决这个问题,但都没有成功。

  1. 以管理员身份运行Visual Studio 2017
  2. 删除并重新添加文件
  3. 从头开始重新创建解决方案
  4. 重新强制文件夹中的所有文件不是只读的
  5. 检查所有文件的权限:我有完全权限
  6. 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

问题似乎与.vs子文件夹中某种类型的损坏有关。由于我没有使用Visual Studio的内置源代码控制,我只是删除了该文件夹并重新加载了解决方案。现在一切都恢复正常了。

线索是:手动删除其中一个空文件(直接编辑.vsproj,并从解决方案文件夹中删除文件)后,我尝试使用类向导重新重新添加类。然而,Visual studio坚持认为这个课程已经存在,尽管在任何来源中都没有提到它。似乎通过源代码控制无形地维护了一个引用。我不敢相信在此之前我没有考虑过.vs。

无论如何,我希望将来可以帮助其他人。