Visual Studio alm rangers


Passo 7 – Armadilhas Comuns



Baixar 7.59 Mb.
Página44/62
Encontro30.10.2016
Tamanho7.59 Mb.
1   ...   40   41   42   43   44   45   46   47   ...   62

Passo 7 – Armadilhas Comuns


Note que temos erros mesmo que a instalação tenha sido bem sucedida. Esta é uma das partes mais complicadas do deployment utilizando o VsDbCmd. Algumas vezes você pode obter sucesso parcial. Quando você estiver desenvolvendo ou inspecionando a experiência de instalação pode ser útil deixar o banco de dados no seu estado de deploy parcial, para que seja possível solucionar esses erros. Isso pode ser útil se você tiver muitas atividades nos scripts de pre e post deployment.

Há um efeito colateral da comparação de schema realziada pela deployment engine: você pode reexecutar a instalação e trazer o banco de dados para o estado desejado. Isso é particularmente verdade se sua sequência de instalação não estiver correta.

Nós podemos controlar quando a instalação é abortada caso ocorra um erro quando definimos elementos CustomAction que executam o VsDbCmd.


  1. No Solution Explorer, vá até o projeto Install e abra o arquivo Database2.wxi localizado na pasta “Components\Databases”. Examine as seguintes linhas:


BinaryKey="WixCA"

DllEntry="CAQuietExec"

Execute="deferred"

Return="ignore"

TerminalServerAware="yes"/>


O atributo Return informa o Windows Installer para executar a linha de comando e ignorar qualquer resposta. Vamos alterá-lo para check.

BinaryKey="WixCA"

DllEntry="CAQuietExec"

Execute="deferred"

Return="check"

TerminalServerAware="yes"/>




  1. Pressione F6 para realizar o build do projeto Install novamente.



  1. No Painel de Controle, clique em Programas e Recursos. Selecione WiXDBProSample v1.0 e escolha Desinstalar.



  1. Abra o SQL Management Studio e exclua os bancos de dados Sales e Customers. Para excluir os bancos de dados conecte na instância local do SQL Server, clique com o botão direito nos bancos citados e selecione Drop database.



  1. Execute o WiXDBProInstall_x64 a partir da linha de comando e você irá perceber este erro. (Figura 78)

Figura 78 Instalação abortada do projeto de instalação do WiX



  1. Nós intencionalmente alteramos o arquivo Database2.wxi para que você pudesse ver um efeito importante. Se você abrir o arquivo WixDBProInstall_x64.install.log você verá o seguinte:

CAQuietExec: TSD00566 Deployment script generated to:

CAQuietExec: C:\Program Files\WiXDBProSample\Databases\Sales\Sales.sql

CAQuietExec:

CAQuietExec: SQL01268 C:\Program Files\WiXDBProSample\Databases\Sales\Sales.sql (39,0) Creating Sales...

CAQuietExec: SQL01268 C:\Program Files\WiXDBProSample\Databases\Sales\Sales.sql (172,0) Creating ....

CAQuietExec: SQL01268 C:\Program Files\WiXDBProSample\Databases\Sales\Sales.sql (185,0) Creating ....

CAQuietExec: SQL01268 C:\Program Files\WiXDBProSample\Databases\Sales\Sales.sql (196,0) Creating ....

CAQuietExec: *** SQL01268 C:\Program Files\WiXDBProSample\Databases\Sales\Sales.sql (200,0) .Net SqlClient Data Provider: Msg 4504, Level 16, State 1, Procedure Customers, Line 3 Could not create view 'Customers' because CLR type 'CustomerAddressType' does not exist in the target database 'Sales'.

CAQuietExec: SQL01268 C:\Program Files\WiXDBProSample\Databases\Sales\Sales.sql (200,0) An error occurred while the batch was being executed.

CAQuietExec: Error 0x80070001: Command line returned an error.

CAQuietExec: Error 0x80070001: CAQuietExec Failed
O que aconteceu é que mesmo com o VsDbCmd retornando um erro e a instalação tendo falhado, o banco de dados e uma série de objetos foram criados.

Vamos fazer com que a instalação funcione corretamente.



Para resolver o erro CustomerAddressType acima nós precisamos adicionar uma referência ao projeto CLR.

  1. No projeto Sales, clique com o botão direito na pasta references no Solution Explorer and selecione Add Reference. O diálogo Add Reference será exibido. (Figura 79)

Figura 79 Diálogo Add Reference



  1. Selecione o projeto CustomersCLR e clique em OK.



  1. Crie uma definição para o CustomersAddressType no projeto Sales.



    1. No Solution Explorer, vá até o projeto Sales. (Figure 80)

Figure 80 O projeto de banco de dados Sales



    1. Clique com o botão direito na pasta User Defined Types CLR e selecione New Item.

    2. Selecione o template User Defined Type (CLR).

    3. Para o nome do arquivo digite CustomerAddress e clique em Add.

    4. Após o novo arquivo ser aberto, substitua o texto com o seguinte script:

CREATE TYPE [dbo].[CustomerAddressType]

EXTERNAL NAME [CustomersCLR].[CustomerAddressType]




  1. Precisamos incluir o arquivo CustomersCLR.dll na instalação definindo-o no arquivo Database2.wxi file.



    1. No Solution Explorer, vá até o projeto Install e abra o arquivo Database2.wxi que está localizado na pasta Components\Databases.

    2. Procure pela linha que definie Customers.dbschema





    1. Insira a linha a seguir após essa definição. Preste atenção no valor do Id para que não colida com a definição em Database1.wxi.




  1. Nós também precisamos resolver o problema no projeto CustomerServer.



    1. No exercício anterior vimos o erro a seguir durante o deployment:

CAQuietExec: *** SQL01268 C:\Program Files\WiXDBProSample\Databases\Customers Server Settings\CustomersServer.sql (47,0) .Net SqlClient Data Provider: Msg 14262, Level 16, State 1, Procedure sp_verify_category_identifiers, Line 50 The specified @category_name ('Sales') does not exist.

Precisamos corrigir um erro no nosso script de post deployment.



  1. Em CustomersServer sob Scripts\PostDeployment abra o arquivo em ShippingDatePost.sql.



    1. Encontre as linhas abaixo:

/****** Object: JobCategory [[Uncategorized (Local)]]] Script Date: 09/28/2009 15:00:27 ******/

IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'Customers' AND category_class=1)



BEGIN

EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'Customers'



IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback


    1. Altere N'Customers' para N'Sales'.

Este script também irá falhar caso o banco de dados Sales não exista, de forma que devemos rearranjar a sequência de execução.

  1. No Solution Explorer, vá até o projeto Install e abra o arquivo Sequences.wxi lozalizado na pasta raiz.



    1. É necessário rearranjar os atributos After para que fiquem conforme abaixo:


!Database1=2 And &Database1=3 And ?Database1=2 And $Database1=3

!Database1=2 And &Database1=3 And ?Database1=2 And $Database1=3
!Database2=2 And &Database2=3 And ?Database2=2 And $Database2=3

!Database2=2 And &Database2=3 And ?Database2=2 And $Database2=3
!Databases=2 And &Databases=3

!Databases=2 And &Databases=3


  1. No Solution Explorer, clique com o botão direito no projeto Install e selecione Build.



  1. Agora nós podemos executar o instalador novamente a partir da linha de comando:

Msiexec.exe /I WiXDBProInstall_X64.msi /l*v WixDBProInstall_x64.install.log

Figura 81 Saída da linha de comando do instalador iniciado

Após o instalador ter sido executado, você deve visualizar a saída mostrada na Figura 81. Agora, quando você abre o arquivo de log, não deve haver falhas.


Catálogo: 2012
2012 -> Fapesp e inpe promovem workshop para discutir relatório do ipcc sobre Riscos de Extremos Climáticos e Desastres nas Américas do Sul e Central
2012 -> Anima Mea Concerto no Convento Corpus Christi, 14junho2015
2012 -> Branches e merge com Visual Studio Team Foundation Server 2012
2012 -> Perfil: Time de Qualidade, Testadores
2012 -> Lista de Biologia Vanessa / Frente a volume 2
2012 -> CÂmara municipal de sapopema estado do paraná cnpj: 77. 774. 487/0001-94 Av. Manoel Ribas, 520, cep – 84. 294-000 Fone/Fax (43) 3548-1258
2012 -> Instituto nacional de estudos e
2012 -> Gabinete do ministro
2012 -> Indice de leis complementar 2012 lei 114 À 154 lei complementar 114 de 19 de janeiro de 2012
2012 -> Agenda do presidente do Ibram, Angelo Oswaldo de Araújo Santos 30 de dezembro de 2014

Baixar 7.59 Mb.

Compartilhe com seus amigos:
1   ...   40   41   42   43   44   45   46   47   ...   62




©bemvin.org 2020
enviar mensagem

    Página principal
Prefeitura municipal
santa catarina
Universidade federal
prefeitura municipal
pregão presencial
universidade federal
outras providências
processo seletivo
catarina prefeitura
minas gerais
secretaria municipal
CÂmara municipal
ensino fundamental
ensino médio
concurso público
catarina município
reunião ordinária
Dispõe sobre
Serviço público
câmara municipal
público federal
Processo seletivo
processo licitatório
educaçÃo universidade
seletivo simplificado
Secretaria municipal
sessão ordinária
ensino superior
Universidade estadual
Relatório técnico
Conselho municipal
técnico científico
direitos humanos
científico período
pregão eletrônico
Curriculum vitae
espírito santo
Sequência didática
Quarta feira
conselho municipal
prefeito municipal
distrito federal
língua portuguesa
nossa senhora
educaçÃo secretaria
Pregão presencial
segunda feira
recursos humanos
educaçÃO ciência
Terça feira
agricultura familiar