c00*_*0fd 7 c++ manifest long-filenames visual-studio visual-studio-2017
我正在尝试遵循Microsoft文档,以解除MAX_PATHWindows 10下API中文件路径的限制。它说:
您还可以通过清单来为每个应用启用新的长路径行为:
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
<ws2:longPathAware>true</ws2:longPathAware>
</windowsSettings>
</application>
Run Code Online (Sandbox Code Playgroud)
所以,第一个问题。是否可以在Visual Studio 2017的项目属性中启用它?
第二个问题:我没有在上面找到答案,所以我决定走一条手工路线:
我这样创建了additional.manifest文本文件:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
<ws2:longPathAware>true</ws2:longPathAware>
</windowsSettings>
</application>
</assembly>
Run Code Online (Sandbox Code Playgroud)然后,将其添加到项目属性中:
1> additional.manifest:清单创作警告81010002:名称空间“ http://schemas.microsoft.com/SMI/2016/WindowsSettings ”中无法识别的元素“ longPathAware ”。
那我在做什么错?
小智 2
否。Windows 桌面或控制台应用程序的 Visual Studio 2017 v15.9.4 项目属性中没有用于启用“长路径感知”的开关。
您上面链接的 Microsoft 文档说明如下:
从 Windows 10 版本 1607 开始,常见 Win32 文件和目录函数中已删除 MAX_PATH 限制。但是,您必须选择接受新行为。
确保您使用的配置和当前工具集的目标是适用于 Windows 10 版本 1607 或更高版本的 Windows SDK。您至少需要 Windows SDK v10.0.14393.795。当前版本是 v10.0.17763.0。
您可以在项目属性的“常规”属性表中查找并更改目标 Windows SDK 版本和目标工具集。
旁注:使所有配置中的整体配置更改处于活动状态。将属性表的配置选项更改为“所有配置”和“所有平台”,除非您专门针对平台进行更改。