Мой смысл установки предполагает, что значение INSTALLFOLDER
в вашем CustomActionData
на самом деле является значением [INSTALLFOLDER]
.При регистрации этот синтаксис будет преобразован в правильное значение.Вот почему это выглядит хорошо.Однако то, что на самом деле получает FileInfo
, это значение типа:
FileInfo targetDir = new FileInfo("[INSTALLFOLDER]");
Что, конечно, означает «Файл с именем« [INSTALLFOLDER] »в текущем каталоге».Это соответствует вашей второй строке журнала.
Исправление будет состоять в том, чтобы вы передавали значение INSTALLFOLDER
в CustomActionData.Несколько разных способов сделать это в зависимости от того, как вы планируете отложенное настраиваемое действие и устанавливаете именованное свойство.Например, использование SetProperty
должно быть простым способом исправить это.
Обновление: Hawex предоставил фрагмент, который определил пользовательское действие.Это выглядело так:
<Property Id="CustomActionOnInstall" Value="INSTALLFOLDER=[INSTALLFOLDER]" />
<CustomAction Id="CustomActionOnInstall" BinaryKey="CustomActions" Execute="deferred"
Impersonate="no" DllEntry="OnInstall" Return="check" />
<InstallExecuteSequence>
<Custom Action="CustomActionOnInstall" Before="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>
чтобы исправить, просто измените статический (без оценки) Property
на SetProperty
, например так:
<SetProperty Id="CustomActionOnInstall" Value="INSTALLFOLDER=[INSTALLFOLDER]"
Before="CustomActionOnInstall" Sequence="execute" />