ASP.NET implantação da Web usando o Visual Studio: implantação de linha de comando
por Tom Dykstra
Esta série de tutoriais mostra como implantar (publicar) um aplicativo Web ASP.NET para Serviço de Aplicativo do Azure Aplicativos Web ou para um provedor de hospedagem de terceiros usando o Visual Studio 2012 ou o Visual Studio 2010. Para obter informações sobre a série, consulte o primeiro tutorial da série.
Visão geral
Este tutorial mostra como invocar o pipeline de publicação na Web do Visual Studio da linha de comando. Isso é útil para cenários em que você deseja automatizar o processo de implantação em vez de fazer isso manualmente no Visual Studio, normalmente usando um sistema de controle de versão do código-fonte.
Fazer uma alteração para implantar
Atualmente, a página Sobre exibe o código do modelo.
Você substituirá por um código que exibe um resumo da inscrição do aluno.
Abra a página About.aspx , exclua toda a marcação dentro do MainContent
Content
elemento e insira a seguinte marcação em seu lugar:
<h2>Student Body Statistics</h2>
<asp:ObjectDataSource ID="StudentStatisticsObjectDataSource" runat="server" TypeName="ContosoUniversity.BLL.SchoolBL"
SelectMethod="GetStudentStatistics" DataObjectTypeName="ContosoUniversity.DAL.EnrollmentDateGroup">
</asp:ObjectDataSource>
<asp:GridView ID="StudentStatisticsGridView" runat="server" AutoGenerateColumns="False"
DataSourceID="StudentStatisticsObjectDataSource">
<Columns>
<asp:BoundField DataField="EnrollmentDate" DataFormatString="{0:d}" HeaderText="Date of Enrollment"
ReadOnly="True" SortExpression="EnrollmentDate" />
<asp:BoundField DataField="StudentCount" HeaderText="Students" ReadOnly="True"
SortExpression="StudentCount" />
</Columns>
</asp:GridView>
Execute o projeto e selecione a página Sobre .
Implantar no Teste usando a linha de comando
Você não implantará outra alteração de banco de dados, portanto, desabilite a implantação de banco de dados dbDacFx para o banco de dados aspnet-ContosoUniversity. Abra o assistente Publicar Web e, em cada um dos três perfis de publicação, desmarque a caixa Atualizar Banco de Dados marcar na guia Configurações.
Na página Iniciar do Windows 8, pesquise Prompt de Comando do Desenvolvedor para VS2012.
Clique com o botão direito do mouse no ícone do Prompt de Comando do Desenvolvedor para VS2012 e clique em Executar como administrador.
Insira o seguinte comando no prompt de comando, substituindo o caminho para o arquivo de solução pelo caminho para o arquivo de solução:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Test
O MSBuild cria a solução e a implanta no ambiente de teste.
Abra um navegador e acesse http://localhost/ContosoUniversity
e clique na página Sobre para verificar se a implantação foi bem-sucedida.
Se você não tiver criado nenhum aluno no teste, verá uma página vazia no título Estatísticas do Corpo do Aluno . Vá para a página Alunos , clique em Adicionar Aluno e adicione alguns alunos e retorne à página Sobre para ver as estatísticas dos alunos.
Principais opções de linha de comando
O comando inserido passou o caminho do arquivo da solução e duas propriedades para o MSBuild:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true
/p:PublishProfile=Test
Implantando a solução versus implantando projetos individuais
Especificar o arquivo de solução faz com que todos os projetos na solução sejam criados. Se você tiver vários projetos Web na solução, o seguinte comportamento do MSBuild se aplicará:
- As propriedades especificadas na linha de comando são passadas para cada projeto. Portanto, cada projeto Web deve ter um perfil de publicação com o nome que você especificar. Se você especificar
/p:PublishProfile=Test
, cada projeto Web deverá ter um perfil de publicação chamado Teste. - Você poderá publicar com êxito um projeto quando outro nem mesmo for compilado. Para obter mais informações, consulte o thread de stackoverflow MSBuild falha com dois pacotes.
Se você especificar um projeto individual em vez de uma solução, precisará adicionar um parâmetro que especifique a versão do Visual Studio. Se você estiver usando o Visual Studio 2012, a linha de comando será semelhante ao seguinte exemplo:
msbuild C:\ContosoUniversity\ContosoUniversity\ContosoUniversity.csproj /p:DeployOnBuild=true /p:PublishProfile=Test /p:VisualStudioVersion=11.0
O número de versão do Visual Studio 2010 é 10.0. Para obter mais informações, consulte Compatibilidade de projeto do Visual Studio e VisualStudioVersion no blog do Sayed Hashimi.
Especificando o perfil de publicação
Você pode especificar o perfil de publicação por nome ou pelo caminho completo para o arquivo .pubxml , conforme mostrado no exemplo a seguir:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=C:\ContosoUniversity\ContosoUniversity\Properties\PublishProfiles\Test.pubxml
Métodos de publicação na Web com suporte para publicação de linha de comando
Há suporte para três métodos de publicação para publicação de linha de comando:
MSDeploy
– Publicar usando a Implantação da Web.Package
– Publicar criando um pacote de implantação da Web. Você precisa instalar o pacote separadamente do comando MSBuild que o cria.FileSystem
– Publicar copiando arquivos para uma pasta especificada.
Especificando a configuração de build e a plataforma
A configuração de build e a plataforma devem ser definidas no Visual Studio ou na linha de comando. Os perfis de publicação incluem propriedades nomeadas LastUsedBuildConfiguration
e LastUsedPlatform
, mas você não pode definir essas propriedades para determinar como o projeto é criado. Para obter mais informações, consulte MSBuild: como definir a propriedade de configuração no blog do Sayed Hashimi.
Implantar no preparo
Para implantar no Azure, você deve adicionar a senha à linha de comando. Se você salvou a senha no perfil de publicação no Visual Studio, ela foi armazenada no formulário criptografado no arquivo .pubxml.user . Esse arquivo não é acessado pelo MSBuild quando você faz uma implantação de linha de comando, portanto, você precisa passar a senha em um parâmetro de linha de comando.
Copie a senha de que você precisa do arquivo .publishsettings que você baixou anteriormente para o site de preparo. A senha é o valor do
userPWD
atributo para o elemento DesativaçãopublishProfile
da Web.Na página Iniciar do Windows 8, pesquise Prompt de Comando do Desenvolvedor para VS2012 e clique no ícone para abrir o prompt de comando. (Você não precisa abri-lo como administrador desta vez porque não está implantando no IIS no computador local.)
Insira o seguinte comando no prompt de comando, substituindo o caminho para o arquivo de solução pelo caminho para o arquivo de solução e a senha com sua senha:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Staging /p:Password=hdNSWsbuqno7J5uqnwKafwlfNPt1DSco7J5uqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
Observe que essa linha de comando inclui um parâmetro extra:
/p:AllowUntrustedCertificate=true
. Como este tutorial está sendo escrito, aAllowUntrustedCertificate
propriedade deve ser definida quando você publica no Azure na linha de comando. Quando a correção desse bug for lançada, você não precisará desse parâmetro.Abra um navegador e acesse a URL do site de preparo e clique na página Sobre para verificar se a implantação foi bem-sucedida.
Como você viu anteriormente para o ambiente de teste, talvez seja necessário criar alguns alunos para ver estatísticas na página Sobre .
Implantar para a produção
O processo de implantação em produção é semelhante ao processo de preparo.
Copie a senha de que você precisa do arquivo .publishsettings que você baixou anteriormente para o site de produção.
Abra o Prompt de Comando do Desenvolvedor para VS2012.
Insira o seguinte comando no prompt de comando, substituindo o caminho para o arquivo de solução pelo caminho para o arquivo de solução e a senha com sua senha:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Production /p:Password=hdNSWsbuqnwKafwlo7J5uqnwKafwlfNPt1DSqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
Para um site de produção real, se houvesse também uma alteração de banco de dados, você normalmente copiaria o arquivo app_offline.htm para o site antes da implantação e o excluiria após a implantação bem-sucedida.
Abra um navegador e acesse a URL do site de preparo e clique na página Sobre para verificar se a implantação foi bem-sucedida.
Resumo
Agora você implantou uma atualização de aplicativo usando a linha de comando.
No próximo tutorial, você verá um exemplo de como estender o pipeline de publicação na Web. O exemplo mostrará como implantar arquivos que não estão incluídos no projeto.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de