WiX: проблема с установкой защищенного паролем сертификата PFX - PullRequest
1 голос
/ 27 апреля 2011

У меня проблемы с получением защищенного паролем сертификата PFX для установки через WiX.

Я использую WiX 3.5.2519.0.

Я включаю файл PFX следующим образом:

<Binary Id="My.Binary"
 SourceFile="$(var.ProjectDir)MyProject$(var.ConfigSuffix).pfx" />

Значение $ (var.ConfigSuffix) зависит от конфигурации решения (например, "(Debug)", "(Stage)"). Для «Release» это пустая строка.

У меня есть различные конфигурации решений, все, кроме одного, используют незащищенный паролем сертификат PFX, «Release» использует защищенный паролем PFX. Я имею дело с этим путем условного определения $ (var.PfxPassword) только в конфигурации «Release», а затем установки сертификата следующим образом:

<?ifdef $(var.PfxPassword) ?>
    <iis:Certificate
    Id="My.Certificate"
    StoreName="root"
    Overwrite="yes"
    Name="My Web Site$(var.ConfigSuffix)"
    Request="no"
    BinaryKey="MyCertificate.Binary"
    StoreLocation="localMachine"
    PFXPassword="$(var.PfxPassword)" />
<?else?>
    <iis:Certificate
    Id="My.Certificate" 
    StoreName="root" 
    Overwrite="yes" 
    Name="My Web Site$(var.ConfigSuffix)" 
    Request="no" 
    BinaryKey="MyCertificate.Binary" 
    StoreLocation="localMachine" />
<?endif?>

Я также пытался заменить «$ (var.PfxPassword)» на «[PFXPASSWORD]» (определив это в другом месте) и фактический пароль в виде простого текста. В любом случае установка завершается неудачно с использованием следующего фрагмента журнала:

Action start 12:29:02: InstallCertificates.
InstallCertificates:  Error 0x80070056: Failed to open PFX file.
InstallCertificates:  Error 0x80070056: Failed to get SHA1 hash of certificate.
InstallCertificates:  Error 0x80070056: Failed to resolve certificate: LinnRecords.Certificate
CustomAction InstallCertificates returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 12:29:02: InstallCertificates. Return value 3.

Я считаю, что ошибка 0x80070056 указывает на неверный пароль, однако я использовал Get-PfxCertificate в PowerShell, чтобы убедиться, что пароль, который я использую, правильный.

Для всех конфигураций, в которых файл PFX не использует пароль, установка работает без проблем.

1 Ответ

0 голосов
/ 06 мая 2011

Глядя на похожую проблему в другом месте в Интернете, похоже, что код возврата 3 - это проблема "Файл не найден".Вы уверены, что включен правильный файл pfx?

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