Como você publicar um ClickOnce Construir a um CD com MSBuild

votos
1

Alguém sabe como criar uma publicação ClickOnce para um CD com a tarefa publicar no MSBuild?

VS2008 tem um 'assistente publicar' com uma escolha botão publicar em CD. Ela publica um clique instalar uma vez para uma pasta local que é adequado para a gravação de um CD.

Estamos seguindo um MSBuild agendada com etapas de processamento pós em que configurá-lo e instalá-lo em um determinado ambiente, e nós gostaríamos de ter uma forma de scripts de produzir um CD da saída ClickOnce.

Eu tenho sido capaz de fazer este trabalho processo para a web instalar, e um compartilhamento de arquivos instalar, mas parece que o 'Assistente de Publicação' se algum passo oculto que eu não posso descobrir.

Eu vou sair da minha mente tentando correlacionar as várias propriedades nas publicam diálogos, o assistente de publicar, msbuild publicar alvo, Mage.exe e mageui.exe. Alguns itens têm o mesmo nome, alguns diferem entre os diálogos e propriedades, alguns podem ser definidos em uma área, mas não em outro.

Eu posso ver que automatizar ClickOnce pode ser feito, mas no geral, parece ser uma tecnologia GUI e scripts parece ir contra o seu grão.

Conta

Publicado 09/12/2008 em 18:31
fonte usuário
Em outras línguas...                            


2 respostas

votos
1

Bem, eu respondi minha própria pergunta.

É uma questão de codificação Http!

Quando você publicar um aplicativo, você acaba com uma estrutura de pastas como: C: \ myApp \ Arquivos de Aplicativos \ versão 1

Quando você alterar o conteúdo do aplicativo publicado (como você faz quando você deseja substituir o arquivo de configuração), você tem que demitir os manifestos de aplicativo e implantação.

E quando você faz isso, MageUI.exe HttpEncodes a "Localização" do application.manifest.

Então, agora, o manifesto de implantação diz que seu caminho de arquivo local para o manifesto do aplicativo é algo como: Aplicação% 20Files \ myApp_version \ myApp.exe.manifest

E desde que esse caminho não existe, suas causas supostamente CD de instalação com base para realmente instalar a partir do http: servidor de atualização, se existir, e não conseguem se isso não acontecer

Nossa solução é mudar o nome "Arquivos de Aplicação" para "ApplicationFiles".

Inacreditável...

Respondeu 11/12/2008 em 19:12
fonte usuário

votos
1

Só para acrescentar a isto, parece ter algo a ver com o funcionamento de MageUi na saída da etapa de publicar.

Se eu publicar com MSBuild a partir da linha de comando, que se parece com:

msbuild  C:\myapp.vbproj /target:publish `
/property:PublishDir=c:\ClickOnce\ `
/property:SolutionDir=C:\trunk\myapp\ `
/property:TargetZone=LocalIntranet `
/property:MapFileExtensions=True `
/property:PublisherName='my publisher' `
/property:ProductName='myProduct' `
/property:BootstrapperEnabled=True `
/property:IsWebBootstrapper=False `
/property:GenerateManifests=True `
/property:ApplicationVersion=1.2.3.4 `
/property:Configuration=Debug `
/property:UpdateUrl=http://localhost/ClickOnce/ `
/property:UpdateEnabled=True `
/property:Install=True 

Então eu criar uma pasta que é instalável a partir de um CD.

Quando eu manipular o arquivo de configuração e adicionar saída adicional de outro processo para a pasta publicar, e depois usar MageUI para regenerar os manifestos de aplicativo e implantação, eu criar um Filebased instalar que realmente instala a partir do updateURL. Se eu desconectar da internet, eu recebo um 'Não é possível conectar ao servidor remoto' exceção, então ao invés de apenas a verificação de atualizações, ele está insistindo sobre a instalação do servidor web também.

Respondeu 10/12/2008 em 00:41
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more