Добавить дату в файл журнала установщика - PullRequest
1 голос
/ 05 апреля 2019

Я создаю установщик, используя расширенный установщик, и столкнулся с проблемой, пытаясь добавить даты в файл журнала. Я попробовал команду с помощью cmd, которая работала, однако, когда я добавил ее в командную строку MSI, все значения даты оказались пустыми. Ниже приведены параметры, которые я передаю для MSI

/L*V "C:\Log_%date:~4,2%.%date:~7,2%.%date:~10,4%-%time:~0,2%.%time:~3,2%.%time:~6,2%.log"

Мы пытаемся сделать журнал Log_04.05.2019-15.03.45.log вместо Log.log , так как журналы перезаписываются при удалении или повторной попытке установка ..

1 Ответ

1 голос
/ 06 апреля 2019

Advanced Installer : Извините, я вижу, что меня неправильно поняли. Вы пытаетесь установить имя файла журнала из Advanced Установщик. Будет быстрый взгляд. Где вы указываете эту командную строку в инструменте? Обратите внимание, что установка политики ведения журнала для «Глобального ведения журнала» обеспечит уникальные имена файлов журнала и что каждая операция MSI регистрируется в TMP.


Разъяснение : Похоже, вы не хотите писать в журнал, а контролировать имя файла самого файла журнала?


PowerShell : мне не нравятся командные файлы в отношении подобных вещей. Можете ли вы вызвать установку через Powershell? Я на самом деле не использую PowerShell, но, видя, как он может использовать .NET, может, простое преобразование этого вызова C # поможет?

Вы хотите что-то вроде: "Log_04.05.2019-15.03.45.log", так что вы можете попробовать это в C #:

Console.WriteLine("Log_" + DateTime.Now.ToString("dd.MM.yyyy-HH.mm.ss") + ".log");

Вот блог об использовании PowerShell с установщиком Windows , см. В конце этого фрагмента PowerShell (опять же, я не использую PowerShell для этой цели):

$DataStamp = get-date -Format yyyyMMddTHHmmss
$logFile = '{0}-{1}.log' -f $file.fullname,$DataStamp

$MSIArguments = @(
    "/i"
    ('"{0}"' -f $file.fullname)
    "/qn"
    "/norestart"
    "/L*v"
    $logFile
)
Start-Process "msiexec.exe" -ArgumentList $MSIArguments -Wait -NoNewWindow 

Может быть, также читал о Windows Installer PowerShell Модуль (Хит Стюарт), связанный с этим общим назначением ответ: Как я могу использовать powershell для запуска через установщик? . Модуль PowerShell специального назначения для выполнения операций установщика Windows менее неуклюжий.


Некоторые ссылки :

...