Файл не был незарегистрирован программой Inno Setup во время удаления, если ему также соответствует запись раздела «Файлы подстановки» - PullRequest
0 голосов
/ 14 января 2019

В настоящее время я использую следующий код для установки и регистрации DLL.

[Files]
Source: "Keys\Sentinel\*"; DestDir: "{app}"; Flags: recursesubdirs 32bit 
Source: "Keys\Sentinel\hasp_com_windows.dll"; DestDir: "{app}"; \
    Flags: regserver 32bit noregerror;

Это прекрасно работает во время операции установки, и файл журнала показывает, что файл был успешно зарегистрирован. Моя проблема заключается в том, что во время удаления файл не является незарегистрированным, и файл журнала удаления не содержит ничего о файле, кроме того, что он был удален, который у него есть. Что может привести к тому, что файл не будет незарегистрированным? Файл справки говорит, что это должно быть.

1 Ответ

0 голосов
/ 16 января 2019

Я могу подтвердить поведение, которое вы видите.

В общем случае никогда не следует устанавливать один и тот же файл в одно и то же место назначения, используя две разные записи в разделе [Files]. Это всегда приводит к неожиданному поведению. Как и в этом случае.

Правильное решение состоит в том, чтобы исключить DLL из подстановочного знака:

[Files]
Source: "Keys\Sentinel*"; DestDir: "{app}"; Excludes: "hasp_com_windows.dll";  \
    Flags: recursesubdirs 32bit
Source: "Keys\Sentinel\hasp_com_windows.dll"; DestDir: "{app}"; \
    Flags: regserver 32bit noregerror
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...