Pergunta

Eu comprei recentemente um certificado authenticode da GlobalSign e estou tendo problemas para entrar meus arquivos para implantação. Há um par de arquivos .exe que são gerados por um projeto e, em seguida, colocar em um .msi. Quando eu assinar os arquivos .exe com o signtool o certificado é válido e eles correm bem. O problema é que quando eu construir o .msi (usando o projeto de instalação do visual studio) os arquivos .exe perder suas assinaturas. Para que eu possa assinar o .msi depois de ser construído, mas os arquivos .exe instalados continuar todo o negócio "desconhecido publisher". Como posso manter a assinatura no esses arquivos para instalação na máquina do cliente?

Foi útil?

Solução

Visual Studio cria duas pastas em tempo de compilação: obj e bin. Acontece que, pelo menos no meu caso, a saída será sempre copiado da pasta obj para a pasta bin. Eu estava assinando os executáveis ??na pasta bin apenas para tê-los substituído e depois embaladas para o MSI. Assinando os executáveis ??na pasta obj resolveu o problema.

Outras dicas

Você pode adicionar o seguinte PostBuildEvent ao seu projeto de instalação VS (propriedades do projeto):

Windows 8.0:

"C:\Program Files (x86)\Windows Kits\8.0\bin\x86\signtool.exe" sign /a  $(BuiltOuputPath)

Windows 10:

"C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe" sign /a  $(BuiltOuputPath)

loading="lazy"

esta documentação MSDN para uso signtool. Você pode usar o / f flag para especificar o certificado de assinatura, / p para especificar a senha do cert, etc

Além disso, nota que $ (BuildOuputPath) está incorreto. Isso é de propósito. Graças microsoft. ..

Você positivo o projeto instalador está olhando para o binário assinado e não a um sem assinatura?

Eu não estou usando o msi construtor muito, mas eu iria encontrá-lo surpreendente que ele modifica os arquivos que ele pacotes em tudo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top