是啥导致 Visual Studio 2017 中的文件名为空
Posted
技术标签:
【中文标题】是啥导致 Visual Studio 2017 中的文件名为空【英文标题】:What is causing null file names in Visual Studio 2017是什么导致 Visual Studio 2017 中的文件名为空 【发布时间】:2017-10-10 17:19:17 【问题描述】:我的一些项目无法正确加载文件。在解决方案资源管理器中,它们具有空文件名。我仍然可以正常编译和工作,但是我无法从这个视图中打开它们。它说,“无法打开文件。”
如果我使用“显示所有文件”展开视图,我可以看到它们存在但被视为已从项目中排除。就像它们同时被包含和排除一样。重新包含它们不起作用。
项目和过滤器文件似乎没有损坏。我什至手动编辑它们无济于事。这是来自 VCXPROJ 文件的 sn-p:
<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 文件的 sn-p:
<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>
我尝试了很多方法来解决这个问题,但都没有成功。
-
以管理员身份运行 Visual Studio 2017
删除和重新添加文件
从头开始重新创建解决方案
将文件夹中的所有文件重新强制为只读
检查所有文件的权限:我确实拥有完全权限
有什么想法吗?
【问题讨论】:
.vcxproj.filters
长什么样子?
它看起来同样有效。我将包括一个相关的 sn-p。正如我所说,我试图编辑甚至完全替换它,但无济于事。
如果您将文件包含到另一个项目中,那么会发生什么? evtl 是文件本身损坏或损坏。
【参考方案1】:
问题似乎与 .vs 子文件夹中的某种类型的损坏有关。由于我没有使用 Visual Studio 的内置源代码管理,我只是删除了该文件夹并重新加载了解决方案。现在一切都恢复正常了。
线索是这样的:在手动删除其中一个空文件(直接编辑 .vsproj,并从解决方案文件夹中删除文件)后,我尝试使用类向导重新添加类。然而,Visual Studio 坚持认为该类已经存在,尽管任何来源都没有提及它。似乎通过源代码管理无形地维护了一个参考。我不敢相信在此之前我没有考虑 .vs。
无论如何,我希望这对将来的其他人有所帮助。
【讨论】:
以上是关于是啥导致 Visual Studio 2017 中的文件名为空的主要内容,如果未能解决你的问题,请参考以下文章
是啥导致 Visual Studio 调试器使某些问题无法重现?
在 Visual Studio 2015 中重命名时导致“无法解决的冲突”的原因是啥?
Visual Studio 2017 中的 TypeScript:自动定义包含导致重复标识符错误