Eu tenho um projeto de aplicativo Web no VS 2012 e, quando uso a ferramenta de publicação na Web, ela é criada com êxito, mas não copia nenhum arquivo para o destino de publicação (neste caso, sistema de arquivos).
Se eu olhar para a saída da compilação, posso ver que tudo é copiado para obj \ Release \ Package \ PackageTmp \ corretamente, mas tudo o que vejo na saída da compilação é o seguinte:
4> Projeto de construção concluído "{Project} .csproj".
4> Excluindo arquivos existentes ...
4> Publicando pasta / ...
4> ========== Compilação: 3 bem-sucedidas, 0 com falha, 1 atualizada, 0 ignorada ===== =====
========== Publicação: 1 bem-sucedida, 0 com falha, 0 ignorada ==========
Embora diga que a publicação foi bem-sucedida, não há arquivos no diretório de destino da publicação.
Eu já vi isso em vários projetos e, às vezes, parece que as configurações da solução / plataforma causam esse problema, mas não consegui identificar uma causa exata para isso.
Alguém mais viu isso acontecer ou tem uma idéia de como fazer isso funcionar corretamente?
ATUALIZAR:
Eu posso ter encontrado uma solução alternativa para isso. Acabei de fazer isso acontecer de novo e estava mexendo nas configurações de publicação. Depois que mudei a Configuração selecionada na guia Configurações para outra configuração e depois para a que eu queria usar todos os meus arquivos, comecei a publicar novamente. Espero que isso funcione em outros projetos no futuro.
ATUALIZAÇÃO 2:
Publiquei um bug no Microsoft Connect e recebi uma resposta de um desenvolvedor da equipe do VS Web Developer. Ele disse que eles corrigiram esse problema em suas compilações internas e lançarão uma atualização para a ferramenta de publicação em breve, que corrigirá esse problema.
ATUALIZAÇÃO 3:
Isso foi corrigido recentemente com o Visual Studio 2012 Update 2
Respostas:
Isso pode ser causado por soluções / projetos criados com o RC do vs2012. Isso aconteceu comigo meses atrás e corrigiu o problema, certificando-se de que minhas configurações de compilação da solução correspondessem às configurações do meu projeto ...
Recentemente, experimentei o mesmo problema ao abrir a mesma solução criada originalmente no vs2012RC com o VS2012 Express for Web. Fiz exatamente o que o pôster original sugeria e resolveu o meu problema.
Aqui está o tópico que me levou à resposta:
connect.microsoft.com/VisualStudio/feedback/details/746321/publish-web-application-fails
A resposta pertinente da conversa acima que me ajudou foi:
fonte
Mesmo problema. A solução alternativa foi alterar as configurações de publicação de Release para Debug. Publique novamente e volte para Liberar ...
fonte
Para levar isso um pouco mais longe. Você tem dois arquivos que são criados quando você cria um perfil de publicação.
NewProfile.pubxml
NewProfile.pubxml.user
Quando você abre um projeto que possui esses arquivos na pasta PublishProfile a partir de um controle de origem, ele possui apenas o
.pubxml
arquivo e não o.publxml.user
arquivo; portanto, ele cria o.publxml.user
arquivo rapidamente quando você abre o projeto. Quando ele cria o novo.publxml.user
em tempo real, o xml se parece com:Quando você cria um novo perfil, ele cria um xml parecido com:
Se você pegar o
<PropertyGroup>
nó e o colocar no.pubxml.user
arquivo, seus PublishProfiles começarão a funcionar novamente.fonte
Uma solução fácil é excluir seu perfil de publicação e criar um novo.
quando você clica com o botão direito na sua solução e seleciona publicar, você tem um perfil definido. exclua isso e crie um novo.
isso vai consertar.
Eu tive esse problema ao mudar de 2010 para 2012
fonte
Eu tive o mesmo erro e alterei a configuração de release para depuração e o problema foi resolvido.
fonte
Eu tive esse mesmo problema, no entanto, nenhuma das respostas neste tópico funcionou para mim. Meu problema foi que existe um diretório que contém arquivos HTML estáticos gerados dinamicamente (pelo meu aplicativo). O diretório inteiro não estava sendo publicado.
A solução que funcionou para mim foi encontrada aqui :
fonte
Isso ocorre porque o .pubxml.user contém as informações necessárias para publicação e esse arquivo não é (e não deve) ser incluído no controle de origem. Para corrigir esse bug do VS, copie as informações do arquivo .pubxml.user para o arquivo .pubxml. As propriedades relevantes são:
Coloque-os no seu .pubxml e você deve estar pronto.
fonte
Eu tentei todas essas soluções, mas essa é a que sempre funciona.
Apenas alteramos o "Método de publicação:" de "Sistema de arquivos" para, por exemplo, "Implantação da Web" e imediatamente o alteramos novamente para "Sistema de arquivos".
fonte
Eu tenho o mesmo problema em vários projetos. Os únicos atingidos parecem ser projetos da web. Excluir e recriar o perfil resolve o problema apenas uma vez. Além disso, a comparação do publishxml gerado não gera diferenças, portanto, ele não parece relacionado ao perfil.
A solução alternativa mencionada pelo OP para alterar problemas de compilação é a única solução confiável no momento.
fonte
Encontrei o mesmo problema no VS 2010, depois de verificar a saída de publicação, os logs de eventos, ativar e verificar os logs do visual studio etc. Decidi então remover a publicação na Web (via adicionar / remover) que acredito ter sido atualizada recentemente para a v1. 0,30810,0. Isso resolveu o problema.
fonte
Aqui tivemos o mesmo problema.
Apenas alteramos o "Método de publicação:" de "Sistema de arquivos" para, por exemplo, "Implantação da Web" e imediatamente o alteramos novamente para "Sistema de arquivos".
fonte
O seguinte funcionou para mim:
Simplesmente mude de Release> Debug> Release (ou vice-versa) e publique.
Não há necessidade de excluir, editar, publicar qualquer coisa que você não precise.
fonte
Meu problema estava na configuração incorreta do arquivo myproject.csproj. O arquivo '_address-step1-stored.cshtml' não foi copiado na publicação. 'Nenhum' mudou para 'Conteúdo', agora está tudo bem.
fonte
None
no arquivo .csproj ou estavam completamente ausentes do projeto (lá, mas não "usados")! Esta totalmente explica porque rodando localmente sempre trabalhou, mas a publicação nunca o fez. : DMesmo problema com o VS 2012 Pro com um destino de publicação em disco. Projeto usado para publicar corretamente, mas começou a executar esse problema em que falhava ao copiar os arquivos para a pasta de destino.
A solução foi editar o perfil de publicação, alterar o modo de Versão (Qualquer CPU) para depurar e voltar para Versão (Qualquer CPU). Isso faz com que o arquivo PublishProfiles \ projname.pubxml.user seja reescrito (conforme descrito acima). Parece que foram adicionados os elementos LastUsedBuild, LastUsedPlatform e TimeStampOfAssociatedLegacyPublishXmlFile no nó propertygroup. Após a conclusão da publicação, ele adiciona outro ItemGroup com arquivos individuais e horários de publicação.
fonte
Esta ação foi bem sucedida para mim:
Mate os perfis de publicação em "Propriedades> Perfis de publicação> xxxx.pubxml" e redefina novamente.
fonte
Pelo que vale a pena, eu finalmente desisti de brigar com o Web Deploy para fazer o que eu queria (copiar arquivos implantáveis e nada mais), então eu o escrevi no PowerShell e estou realmente feliz com o resultado. É muito mais rápido do que qualquer coisa que eu tentei no MSBuild / Web Publish, presumivelmente porque esses métodos ainda estavam fazendo coisas que eu não precisava.
Aqui está a essência ( literalmente ):
No meu caso, estou chamando isso em um ambiente de IC (TeamCity), mas também poderia ser facilmente conectado a um evento pós-compilação.
fonte
Eu descobri que eu poderia solucionar esse problema alterando o local de destino de obj / [release | stage | ..] para um novo caminho fora das pastas da solução completamente, por exemplo, c: \ deployment. Parece que o VS 2012 estava ficando confuso e talvez desistindo de algum lugar durante o processo de publicação.
Matt
fonte
Recentemente, tive o mesmo problema no VS 2013 para um projeto MVC no qual importei o Umbraco CMS. Não pude publicar. A resposta acima ajudou, embora eu precisasse de um tempo para descobrir o que realmente deveria fazer no VS. Precisava de alguma pesquisa, por exemplo, nos blogs da MS para descobrir. Eu tento dizer simples:
fonte
Eu tenho um aplicativo Web com vários outros projetos mencionados na solução. Implantei com sucesso uma única configuração de publicação várias vezes no passado. Alterei a configuração do projeto de depuração para lançamento de um projeto que havia sido perdido no passado. Na próxima vez que tentei implantar, tive esses sintomas, onde o Publish falha silenciosamente - ele não faz nada e diz que conseguiu:
A única maneira de recuperá-lo era apagar o perfil de publicação, fechar o Visual Studio para forçá-lo a salvar a exclusão, reabri-lo e recriar o perfil de publicação do zero. Uma vez que eu fiz isso, eu poderia publicar bem novamente.
Win8 VS2012, laptop de baixa qualidade.
fonte
No Visual Studio 2012, a alternância entre versões ainda causa problemas.
Adicionamos um evento de pré-compilação para excluir a
obj
pasta:del /s /f /q $(ProjectDir)\obj
e isso corrigiu o problema de publicação. A limpeza funciona algumas vezes, mas nem sempre.fonte
Finalmente encontrei a resposta sozinho. Todas as soluções acima não funcionam para mim.
O que eu tinha feito é que eu movo o projeto para o drive c altere a pasta do projeto para algo mais curto e aumente a publicação.
A razão pela qual ele falhou do meu lado é que eu tinha um nome / projeto muito longo de hierarquia.
C: \ Usuários \ usuário \ Desktop \ Sistema de gerenciamento de conformidade \ ComplianceIssueManagementSystem \ ComplianceIssueManagementSystem
Eu tinha pensado nisso porque, às vezes, quando extraí o arquivo rar, ele diz que o nome / caminho é muito longo. Eu pensei que seria o mesmo que o visual studio 2012 publish. e faz!
espero que ajude vocês.
fonte
Verifique no seu projeto atual se você fez uma cópia posterior com o mesmo nome de classe e nome de página diferente (o nome da classe herdará o arquivo copiado). Em última análise, isso irá confundir o compilador !!!
CodeFile = "Consolidated.aspx.vb" Inherits = "Consolidado
fonte
Nenhuma das soluções acima funcionou para mim.
Mas notei que, dos cinco projetos do ASP.NET MVC em nossa solução principal, quatro deles colocaram o pacote de implantação no lugar certo, enquanto um o deixou em obj \ Debug.
Comparei os projetos e encontrei uma discrepância. A solução foi mudar isso :
para isso :
Depois que eu fiz essa alteração, todos os cinco projetos colocaram seus pacotes de implantação no lugar certo.
(Desculpe pelas longas filas, mas não consegui encontrar uma maneira melhor de condensá-las.)
fonte
Encontrei isso com os arquivos de referência de serviço gerados pelo Visual Studio, tornando-se muito longos em termos do comprimento geral do caminho.
Encurtou-os gerando novamente a Referência de Serviço usando svcutil.exe, excluindo todos os arquivos originais de Referência de Serviço.
svcutil pode ser chamado assim:
My.Namespace deve ser substituído pelo espaço para nome existente no proxy de serviço gerado (normalmente encontrado no arquivo Reference.cs) para evitar erros de compilação.
http://myservice
deve ser substituído pelo URL do terminal em serviço.fonte
Eu já entrei no mesmo problema. Nenhuma das soluções acima funcionou para mim.
fonte
Eu publiquei o site várias vezes. Mas um dia, quando modifiquei um arquivo aspx e tentei publicar o site, ele resultou em uma pasta publicada vazia.
Na minha solução alternativa, encontrei uma solução.
O assistente de publicação refletirá qualquer erro durante a publicação, mas não copiará nenhum arquivo para a pasta de destino.
Para descobrir o arquivo que gera o erro, copie o conteúdo da pasta do site para uma nova pasta e inicie o visual studio com esse site.
Agora, quando você tenta publicar, ele fornece o nome do arquivo que contém erros.
Basta corrigir o erro na pasta original do site e tentar publicar, ele funcionará como antes.
fonte
Siga estas etapas para resolver:
Crie um novo perfil e configure-o com as mesmas configurações do seu perfil existente.
O projeto agora será publicado corretamente. Isso geralmente ocorre como resultado de um perfil de publicação controlado por fonte de outra máquina criada em uma versão mais recente do Visual Studio.
fonte
CORRIGIDO - várias soluções oferecidas não funcionaram para mim. O que funcionou para mim no VS Community 2017, o Windows Server 2012 R2, foi alterar as variáveis de ambiente TEMP e TMP para o usuário e, em seguida, reiniciar o sistema e implantar novamente (reiniciar o VS não foi suficiente). Essas variáveis temporárias são onde o VS publica temporariamente.
Reiniciar o visual studio após alterar as variáveis temporárias não funcionou, teve que reiniciar o sistema.
fonte
Primeiro:
Ao publicar, verifique novamente o que você optou.
Isso deve servir. Fez por mim! :)
fonte
O mais fácil é,
fonte