WiX - разрешения для временной папки ASP.NET - PullRequest
2 голосов
/ 01 сентября 2009

Я пытаюсь установить права доступа к папке временных файлов ASP.NET следующим образом:

<PropertyRef Id="NETFRAMEWORK20INSTALLROOTDIR"/>
<DirectoryRef Id="NETFRAMEWORK20INSTALLROOTDIR">
  <Directory Id="TempASPNETFolder" Name="Temporary ASP.NET Files">
    <Component Id="PermissionsTempAspnet" Guid="{C107EC7F-FC97-41b6-B418-EA4532949362}">
      <CreateFolder>
        <util:PermissionEx GenericAll="yes" User="[WIX_ACCOUNT_NETWORKSERVICE]" />
      </CreateFolder>
    </Component>
  </Directory>
</DirectoryRef>

Я включил расширения netfx и util. Когда я компилирую, я получаю следующую ошибку:

ошибка LGHT0094: неразрешенная ссылка на символ 'Directory: NETFRAMEWORK20INSTALLROOTDIR'

Что мне здесь не хватает?

Обновление: не знаю много о WiX, я пробовал это. Компилирует и ссылки. Не уверен, что это на самом деле работает.

<DirectoryRef Id="TARGETDIR">
  <Directory Id="NetFramework20InstallDir" Name="[NETFRAMEWORK20INSTALLROOTDIR]">
    <Directory Id="TempASPNETFolder" Name="Temporary ASP.NET Files">
      <Component Id="PermissionsTempAspnet" Guid="{C107EC7F-FC97-41b6-B418-EA4532949362}">
        <CreateFolder>
          <util:PermissionEx GenericAll="yes" User="[WIX_ACCOUNT_NETWORKSERVICE]" />
        </CreateFolder>
      </Component>
    </Directory>
  </Directory>
</DirectoryRef>

1 Ответ

1 голос
/ 04 сентября 2009

Ваше второе решение создаст каталог с именем «[NETWORKFRAMEWORK20INSTALLROOTDIR]» на самом большом диске на вашем компьютере. Я не думаю, что это то, что вы хотите. :)

Решение состоит в том, чтобы использовать «NETFRAMEWORK20INSTALLROOTDIR» в качестве каталога / @ Id. Это имеет смысл только после того, как вы поймете, что каталоги можно рассматривать как свойства. Не обязательно интуитивно понятный, но это, тем не менее, делает установщик Windows. Итак, я бы просто изменил ваш первый пример на что-то вроде:

<PropertyRef Id="NETFRAMEWORK20INSTALLROOTDIR"/>
<DirectoryRef Id="TARGETDIR">
  <Directory Id="NETFRAMEWORK20INSTALLROOTDIR" Name="This will be ignored because the DirectorySearch used by the PropertyRef above will overwrite it.">
    <Directory Id="TempASPNETFolder" Name="Temporary ASP.NET Files">

Надеюсь, это указывает на правильное направление. Обратите внимание, я бы использовал более короткое Directory / @ Name, чем в моем примере выше. ;)

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