Pergunta

Atualmente, estou executando o Visual Studio Team System 2010 RC e estou tentando obter a configuração do serviço de compilação para criar minha solução e implantar 3 aplicativos da Web nele. Criei uma configuração de compilação personalizada chamada Integration e configurei o "Nome do Site/Aplicativo do IIS para usar no servidor de destino" na guia Pacote/publicação das propriedades para cada um dos aplicativos da Web.

Na minha definição de construção, defini os seguintes argumentos:

/p: implantingbuild = true /p: implantTarget = msDeployPublish /p: msdeploypublishmethod = inproc /p: msDeployServiceurl =http: // my-server-name: 8172/msdeploy.axd /p: enablePackageProcessLoggingAndAsert = true

No entanto, quando executo a construção, recebo o seguinte erro, para todos os três aplicativos da Web:

Atualizando o setAcl (MyProjectName).

C: Arquivos de programas msbuild microsoft visualstudio v10.0 web microsoft.web.publishing.targets (3481,5): erro: a tarefa de implantação da web falhou. (Tentou realizar uma operação não autorizada.)

Eu não acho que esse seja o meu problema real. Esse erro está ocorrendo após a entrada a seguir no log: atualizando o setAcl, é isso que está causando a mensagem de erro, mas parece que o MSDeploy está tentando implantar para o IIS local no servidor de construção, não o servidor que especifiquei com o parâmetro MSDeployServiceUrl.

Depois de analisar o arquivo de destino em C: Arquivos de Programas Msbuild Microsoft VisualStudio V10.0 Web Microsoft.Web.publishing.Targets, adicionei o enablePackageProcessLoggingingAnderSt, que adiciona log extra. O log mostra uma sequência de empatria para o valor do msDeployServiceUrl. Também notei no destino que o MSDeployServiceUrl possui um S minúsculo S, o que é um pouco confuso porque o nome da tarefa MSDeployPublish tem uma maiúscula S. Tentei usá -lo usando uppercase e, novamente, usando o minúsculo, mas também não funcionou.

Algumas outras coisas a serem observadas:

  1. Meu serviço de construção está sendo executado como serviço de rede.
  2. O servidor que estou tentando implantar está em outro domínio.
  3. Eu também tentei adicionar /p: nome de usuário = myDomain myusername /p: senha = mypassword na lista de parâmetros do msbuild, mas isso não ajudou.

Alguém sabe se estou fornecendo os parâmetros corretos? Ou me fornecer os corretos?

Obrigado

Foi útil?

Solução

Após muitas rodadas de alteração dos parâmetros, consegui encontrar uma solução e obter a construção para implantar com sucesso. Os parâmetros que acabei usando foram:

/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish 
/p:MSDeployPublishMethod=**RemoteAgent** 
/p:MsDeployServiceUrl=http://my-server-name
/p:username=myusername 
/p:password=mypassword

Parece que ao usar InProc para o MSDeployPublishMethod Msbuild ignora MsDeployServiceurl e sempre tenta implantar para o servidor local. Eu mudei para RemoteAgent E foi implantado com sucesso. Eu notei que o arquivo de pacote é nolonger contido no MyWebApplication_package Pasta, mas isso não é um grande negócio para mim.

Outras dicas

Considerando que o VS2010 é rtm'd, você pode considerar apenas atualizar e ver se o problema desaparece.

Para a compilação que a equipe de construção está executando qual arquivo você especificou? Se era um arquivo de solução, basta passar essas propriedades para isso, não significa que elas sejam propagadas para cada arquivo de projeto quando construídas. Quando você cria arquivos de solução, apenas um conjunto limitado de propriedades são passadas para os projetos que estão sendo construídos. Se for esse o caso, você deve criar um arquivo .proj que substituirá essencialmente o arquivo de solução e passará nessas propriedades.

Eu recentemente blogei sobre Como substituir seu arquivo de solução por um arquivo msbuild.

Deixe -me saber se isso não se aplicar a você ou não o ajudar.

Para sua informação, você também pode estar interessado nesse outro tópico no MSDeploy, mas não é o mesmo problema que você está tendo aqui. Como posso fazer com que o TFS2010 execute o MSDeploy para mim através do msbuild?.

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