Pergunta

Eu só preciso criar um pacote de implantação da Web usando o TFS build e não quero implantá-lo automaticamente no IIS.

Eu adicionei os dois parâmetros abaixo em Build Definition -> MSBuild Arguments

/p:CreatePackageOnPublish=true /p:DeployOnBuild=true

O problema é que não estou recebendo o arquivo ZIP no local de armazenamento e recebendo o erro abaixo.

C: Arquivos de programas msbuild microsoft visualstudio v10.0 web microsoft.web.publishing.targets (1657):A tarefa "MapUriToIisWebServer" falhou inesperadamente.System.Runtime.InteropServices.COMException (0x80005000):Erro desconhecido (0x80005000) em System.DirectoryServices.DirectoryEntry.Bind (Boolean Throwiffil)
at System.DirectoryServices.DirectoryEntry.Bind() at System.DirectoryServices.DirectoryEntry.get_IsContainer() at System.DirectoryServices.DirectoryEntries.CheckIsContainer() at System.DirectoryServices.DirectoryEntries.Find(String name, String schemaClassName) at Microsoft.Web. Publishing.Tasks.MapUriToIisWebServer.get_IisMajorVersion() at Microsoft.Web.Publishing.Tasks.MapUriToIisWebServer.Execute() at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() at Microsoft.Build.BackEnd. TaskBuilder.ExecuteInstantiatedTask (ItaskexecutionHost TaskexecutionHost, TaskLoggingContext TaskLoggingContext, TaskHost TaskHost, ItemBucket Bucket, TaskexecutionModeMode HowToExecutETask, Boolean & Tasket)

Qual poderia ser o problema?


Agora estou recebendo um erro diferente

erro:Falha na tarefa de implantação da Web. (Objeto do tipo 'manifest' e caminho 'e: FS\Dev\ApplicationName\Binaries elease_PublishedWebsites\ApplicationName_Package\ApplicationName.SourceManifest.xml' não pode ser criado.)

erro:Objeto do tipo 'manifest' e caminho 'e: FS\Dev\ApplicationName\Binaries elease_PublishedWebsites\ApplicationName_Package\ApplicationName.SourceManifest.xml' não pode ser criado.

erro:Uma ou mais entradas no manifesto 'sitemanifest' não são válidas.

erro:O aplicativo '/ApplicationName' não existe no site 'Default Web Site'.

Foi útil?

Solução

Acredito que você só precisa adicionar o destino 'Package' ao seu projeto de construção para a web.

 /t:Build;Package

Eu tenho usado esse alvo em meu tfs build para gerar a pasta _PublishedWebsite com o pacote zip já há algum tempo com sucesso.

EDITAR:Explicação do alvo do pacote Se você olhar para o seu arquivo csproj para o seu aplicativo da web como um arquivo XML, verá que ele inclui o seguinte

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

Isso inclui vários alvos da web em seu processo de construção.Abra este arquivo e na parte inferior você verá que ele, por sua vez, inclui

 <Import Project="..\Web\Microsoft.Web.Publishing.targets" Condition="Exists('..\Web\Microsoft.Web.Publishing.targets')" />

Este arquivo contém a definição do processo de implantação da Web para MSBuild.Você verá que ele declara uma variável para denotar o "destino" a ser invocado em um Deploy como sendo "Pacote"

 <DeployDefaultTarget Condition="'$(DeployDefaultTarget)'==''">Package</DeployDefaultTarget>

Se você ler mais este arquivo, terá uma ideia de como o empacotamento e a implantação funcionam nos bastidores e qual é o conjunto de propriedades e destinos que você pode manipular para personalizar sua construção.

Resumindo a história, se você ligar

 msbuild yourwebapplication.csproj /t:Package /p:Configuration=Release 

Ele deve criar o pacote de implantação da web para a configuração de versão do seu aplicativo.

Outras dicas

Eu tive o mesmo problema e a única coisa que resolveu foi esta:

    .
  1. Abra seu console de gerenciamento do IIS
  2. Vá para o seu site padrão
  3. Adicionar novo aplicativo chamado 'ApplicationName'
  4. Execute MSBuild novamente.Vai funcionar.

Possível duplicado de msbuild DeployOnBuild= True não publica

Eu tive o mesmo problema com o Atlassian Bamboo, e isso consertou para mim: a partir de uma máquina com o Visual Studio Copie o conteúdo de "C: \ Arquivos de Programas (X86) \ MSBUILD \ Microsoft \ VisualStudio \ v10.0 \ Web"para o servidor TFS Build.

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