Как включить поведение "Long Path Aware" через манифест в исполняемом файле C++?

Я пытаюсь следовать документации Microsoft, чтобы поднять MAX_PATH ограничение пути к файлу в API под Windows 10. Там написано:

Вы также можете включить новое поведение длинного пути для приложения через манифест:

<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: Нераспознанный элемент "longPathAware" в пространстве имен " http://schemas.microsoft.com/SMI/2016/WindowsSettings ".

Так что я делаю не так?

1 ответ

Нет. В свойствах проекта Visual Studio 2017 v15.9.4 для рабочего стола Windows или консольных приложений нет переключателя для включения "Long Path Aware".

Документация Microsoft, на которую вы ссылались выше, гласит следующее:

Начиная с Windows 10 версии 1607 ограничения MAX_PATH были удалены из общих функций файлов и каталогов Win32. Тем не менее, вы должны подписаться на новое поведение.

Убедитесь, что вы используете Windows SDK для Windows 10 версии 1607 или выше для используемой конфигурации и текущего набора инструментов. Вам нужен как минимум Windows SDK v10.0.14393.795. Текущая версия v10.0.17763.0.

Вы можете найти и изменить целевую версию Windows SDK и целевой набор инструментов на странице свойств "Общие" свойств проекта.

Примечание: Сделайте общие изменения конфигурации активными во всех конфигурациях. Измените параметры конфигурации листа свойств на "Все конфигурации" и "Все платформы", за исключением того, что вы вносите изменения специально для платформы.

Другие вопросы по тегам