12

我正在尝试按照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>

那么,第一个问题。是否可以在 Visual Studio 2017 的项目属性中启用它?

第二个问题:我没有在上面找到答案,所以我决定走手动路线:

  1. 我这样创建了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>
    
  2. 然后我将它添加到项目属性中:

在此处输入图像描述

  1. 但是当我编译它时,它给了我这个警告,并且当应用程序运行时,清单似乎没有效果:

1>additional.manifest:清单创作警告 81010002:命名空间“ http://schemas.microsoft.com/SMI/2016/WindowsSettings ”中无法识别的元素“longPathAware ”。

那么我做错了什么?

4

1 回答 1

1

否。Windows 桌面或控制台应用程序的 Visual Studio 2017 v15.9.4 项目属性中没有启用“长路径感知”的开关。

您在上面链接的 Microsoft 文档说明如下:

从 Windows 10 版本 1607 开始,MAX_PATH 限制已从常见的 Win32 文件和目录函数中删除。但是,您必须选择加入新行为。

确保针对您使用的配置和当前工具集针对 Windows 10 版本 1607 或更高版本的 Windows SDK。您至少需要 Windows SDK v10.0.14393.795。当前版本是 v10.0.17763.0。

您可以在项目属性的“常规”属性表中找到并更改目标 Windows SDK 版本和目标工具集。

旁注:在所有配置中激活整体配置更改。将属性表的配置选项更改为“所有配置”和“所有平台”,除非您专门针对某个平台进行更改。

于 2018-12-25T07:08:44.450 回答