Usando MSBuild para assinar ClickOnce ou montagem resulta em MSB3321 erro
-
23-08-2019 - |
Pergunta
Eu configurei meu projeto simples no Visual Studio 2008 para usar um ClickOnce instalador . Eu já especificado que os manifestos ClickOnce deve ser assinado por PFX arquivo de nossa companhia . Quando eu configurar isso no Visual Studio que pediu a senha para o arquivo PFX, que de bom grado fornecido. Tudo funciona bem quando eu construir e publicar a partir de dentro do Visual Studio. Ele também funciona belo edifício de MSBuild na minha máquina.
No entanto, quando tento construí-lo usando MSBuild na nossa máquina de compilação, eu recebo o seguinte erro:
ERROR MSB3321 in
C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(1805,7)
: Importing key file "ourCertificate.pfx" was canceled (sic).
Depois de algumas pesquisas eu encontrei um pouco de informação que diz que isso é porque eu não ter fornecido a senha. Mas eu não consigo encontrar uma maneira de fornecer a senha na máquina de compilação. Eu também vi sugestões para instalar Visual Studio, e fornecer a senha uma vez dentro do Visual Studio, e em seguida, ele vai trabalhar a partir de MSBuild depois disso. Mas eu realmente gostaria de evitar a instalação Visual Studio na máquina de compilação.
Eu tentei clicando duas vezes no arquivo PFX para importá-lo e colocar a senha quando solicitado, mas isso não ajuda.
Esta mesma coisa acontece se eu marcar 'Assinar o assembly' no Visual Studio e fornecer o mesmo arquivo PFX.
Como posso resolver este problema? Existe uma maneira Manual de armazenar a senha na máquina de compilação?
Solução
Você pode importar o certificado em sua loja editor confiável na máquina de compilação? (Internet Explorer> Ferramentas> Opções> Conteúdo> Certificados)
Não uso MSBuild para criar implementações; Eu uso Mago. No entanto, eu uso o nosso arquivo .pfx para importar o nosso cert em minha loja editor confiável. A fim de fazer isso eu tenho que inserir a senha. Depois de feito isso, quando eu salvar um manifesto em Mago já não tem que fornecer uma senha. I pode simplesmente selecionar o certificado de minha loja.
Outras dicas
John Robbins tem um post sobre como embrulhar SignTool.exe em MSBuild , Código Assinatura - é mais barato e mais fácil do que você pensou
.