Как удалить папку журнала при удалении? - PullRequest
0 голосов
/ 24 января 2012

У меня есть WCF в IIS.WCF использует логи log4net.Как я могу удалить папку журнала при удалении?Папка журнала находится в целевой папке.

Я использую этот фрагмент кода:

  <Directory Id='Logs' Name='Logs'>
    <Component Id="comp_iislogs" Guid="{0B0E2F6E-008D-42C9-8A7C-1F1265C077A1}"
      SharedDllRefCount="no" KeyPath="no" NeverOverwrite="no" Permanent="no" Transitive="no"
      Win64="no" Location="either">
      <RemoveFile Id="Files" On="uninstall" Name="*.log"></RemoveFile>
      <CreateFolder/>
    </Component>
  </Directory>

Проблема в том, что файл журнала используется при удалении, и программа удаления сообщает, пожалуйста, остановите приложение и т.д. ...

Ответы [ 3 ]

1 голос
/ 24 января 2012

Тогда вам придется убить процесс с открытым лог-файлом!Если это что-то в веб-приложении, то вам, вероятно, придется перерабатывать пул приложений только для выпуска дескриптора (я думаю).

Вы можете сделать это, используя appcmd recycle apppool /apppool.name: <pool name> из ваших скриптов WiX.Возможно, вы захотите фактически остановить, а затем перезапустить сайт, чтобы избежать каких-либо шансов, что он будет открыт в данный момент.

0 голосов
/ 18 ноября 2012

Использовать RemoveFolderEx элемент из расширения Util в WiX.При таком подходе все подкаталоги и файлы удаляются.

Пример:

<util:RemoveFolderEx On="uninstall" Property="Logs" />

Поместите это в тег Component.

0 голосов
/ 24 января 2012

MSI удаляет только файлы, скопированные во время начальной установки.Журналы, созданные приложением, не распознаются процессом удаления.Другими словами, если хотя бы один файл существует в каталоге, который нужно удалить, MSI будет обрабатывать его как пользовательский файл и пропускать родительский каталог для удаления.

Чтобы удалить каталог журнала, необходимо принудительно удалить егосначала содержимого, но я бы посоветовал против этого, поскольку вы можете столкнуться с проблемами блокировки, с которыми вы не хотите иметь дело.

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