ошибка CNDL0027: значение атрибута File / @ Name, 'apcsystray.exe', не является допустимым 8.3-совместимым именем. - PullRequest
0 голосов
/ 28 августа 2018

Когда я запускаю сборку Windows Installer с использованием набора инструментов WIX 2.0, я получаю сообщение об ошибке ниже.

ошибка CNDL0027: значение атрибута File / @ Name, 'apcsystray.exe', не является допустимым 8.3-совместимым именем. Допустимые имена содержат не более 8 символов, за которыми следует необязательное расширение не более 3 символов. Можно использовать любой символ, кроме следующего: \? | > <: / * "+,; = [] (пробел). </p>

Я подозреваю, что это связано со старой версией, потому что я использую Windows 10 32-битную среду.

Так что мне нужно перенести код и использовать версию WIX 3.0 для устранения этой ошибки?

С уважением, Пракаш

1 Ответ

0 голосов
/ 29 августа 2018

WiX 2 : я определенно перенесу любые источники WiX 2.0 в WiX 3 или WiX 4. Я использую только WiX 3. Я думаю, что вы можете решить эту конкретную проблему, поместив свой источник WiX на диету, а не углубляться в предмет или проблему. Работа с 8.3 именами файлов - это просто трата времени, если вы спросите меня. Избегайте, если можете. Мне жаль разработчиков, которым приходится иметь дело со всеми этими старыми, устаревшими вещами в Windows.

Упрощенная разметка WiX : Другими словами, я думаю, что эту проблему можно «устранить, а не исправить». Так что терпите меня: мне нравится уменьшать исходные файлы WiX до самого необходимого и разрешать автоматическое добавление максимально возможного количества полей компилятором (candle.exe) и компоновщиком (* 1014) *light.exe). Это возможно сделать, потому что многие поля являются просто «шаблонными» или избыточными и всегда будут «меняться вместе». Они также могут быть сгенерированы автоматически.

Вот краткое описание того, как вы можете удалить лишние атрибуты XML в новых источниках WiX: Синтаксис для направляющих в WIX? (рекомендуется читать - должно быть быстрым).

Суть в том, что вы можете сделать это:

<Component>
  <File Source="..\File.dll" />
</Component>

вместо старшего, более сложный:

<!-- Sample guid below, do not copy paste -->
<Component Id="File.dll" Guid="{12345678-1234-1234-1234-123456789ABC}">
  <File Id="File.dll" Name="File.dll" KeyPath="yes" Source="..\File.dll" />
</Component>

Все отсутствующие атрибуты будут автоматически заполнены WiX - что упростит реализацию любых изменений в компиляторе и компоновщике, которые обнаружит ваш "более тонкий источник". Если по какой-либо причине потребуется атрибут, вам будет предложено добавить его с помощью компилятора / компоновщика / документации.

Решение? : Соответственно, пожалуйста, попробуйте удалить все Name attribute и посмотрите, решит ли это вашу проблему. Я бы также удалил как можно больше других полей (может облегчить будущую миграцию - возможно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...