WixToolset 3.11 Util: ошибка PermissionEx для создаваемой папки - PullRequest
1 голос
/ 07 мая 2019

Я новичок в наборе инструментов для установки Wix и пытаюсь создать установщик. Я использую его как плагин для VS 2017. Это насколько я получил.

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util=" http://schemas.microsoft.com/wix/UtilExtension">

<Directory Id="CommonAppDataFolder">
        <Directory Id="ProgramDataVendorFolder" Name="ABC">
          <!--This will create the \ProgramData\MyVendor\MyProductName\ folder. -->
          <Directory Id="ProgramDataAppFolder" Name="DEF" />
        </Directory>
      </Directory>
        </Directory>
    <DirectoryRef Id="ProgramDataAppFolder">
      <Component Id="CmpCreateCommonAppDataFolderWithPermissions" Guid="*" Permanent="yes">
        <CreateFolder>
          <!--This will ensure that everyone gets full permissions to the folder that we create in the ProgramData folder.--> 
          <util:PermissionEx User="Everyone" GenericAll="yes" />
        </CreateFolder>
      </Component>
    </DirectoryRef>

В проекте добавлена ​​ссылка на "WixUtilExtension.dll".

Но я получаю ошибку

Ошибка: элемент CreateFolder содержит необработанное расширение элемент 'util: PermissionEx'. Пожалуйста, убедитесь, что расширение для элементы в 'http://schemas.microsoft.com/wix/UtilExtension' пространство имен предоставлено.

Кроме того, я также попытался использовать http://wixtoolset.org/schemas/v4/wxs/util вместо http://schemas.microsoft.com/wix/UtilExtension

Я попытался закомментировать приведенный выше код, а затем получил ошибку

Расширение 'Microsoft.Tools.WindowsInstallerXml.Extensions.UtilExtension' содержит определение для таблицы «EventManifest», которая сталкивается с ранее загруженное определение таблицы. Пожалуйста, удалите один из конфликтующие расширения или переименуйте одну из таблиц, чтобы избежать столкновение.

Может кто-нибудь, пожалуйста, помогите мне здесь.

1 Ответ

1 голос
/ 07 мая 2019

Отсутствует ссылка : Вы, должно быть, забыли добавить ссылку на файл WixUtilExtension.dll в папке установки WiX.Чтобы добавить ссылку, выполните следующую процедуру.

В Visual Studio :

  1. Откройте проект WiX.
  2. Щелкните правой кнопкой мыши "References" на правой панели => Add References...
  3. Перейдите к файлу или вставьте следующее (при использовании стандартныхпути установки) C:\Program Files (x86)\WiX Toolset v3.11\bin\WixUtilExtension.dll.
  4. Нажмите "Add", а затем "OK".

Пример кода WiX : Некоторые Пример кода WiX описаны здесь.


Наиболее распространенныйпространства имен для добавления к элементу WiX:

 xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" (Burn)
 xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension" (.NET)
 xmlns:iis="http://schemas.microsoft.com/wix/IIsExtension" (IIS)
 xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" (Util)
 xmlns:wixloc="http://schemas.microsoft.com/wix/2006/localization" (Localization)

IsWiX подходит для пространств имен и многого другого (скриншот ниже).Это бесплатный инструмент WiX от Chris Painter:

IsWiX Namespaces

...