Visual Studio alm rangers


Passo 4 – Configurando projetos de banco de dados



Baixar 7.59 Mb.
Página41/62
Encontro30.10.2016
Tamanho7.59 Mb.
1   ...   37   38   39   40   41   42   43   44   ...   62

Passo 4 – Configurando projetos de banco de dados


O guia do WiX recomenda a criação de um Componente para cada arquivo que você desejar instalar, o que simplifica os cenários de upgrade ou correções menores. Nestes cenários o Windows Installer verifica a existência do produto e simplismente copia as novas versões dos arquivos específicos. Cada arquivo faz parte de um único component e possui uma GUID. Durante o processo upgrade (ou correção) o instalador compara os GUIDS copia/exclui somente os arquivos cujos GUIDS foram alterados.

Embora seja uma boa prática criar um componente para cada arquivo isso não é obrigatório. Para os pacotes de projeto de banco de dados este ponto não faz muito sentido. Dificilmente será criado um processo de upgrade que copia a nova versão de um arquivo como, por exemplo, o Database.sqlcmdvars, de forma que funcionalidades do banco de dados sejam alteradas. Nós iremos criar um único componente que hospedará todos os arquivos do projeto.



No exercício anterior nós explicamos os elementos do componente. Vamos manter o foco na tarefa principal que é mapear a saída do projeto de banco de dados para o pacote de instalação.

  1. No Solution Explorer, vá até o projeto de instalação e abra o arquivo Database1.wxi na pasta Components\Databases. Você verá o seguinte script:

files needed for vsdbcmd.exe custom action related processing -->














add database schema references here. if you don't vsdbcmd will throw errors during deployment-->


include assembly references here. -->



NOTA

  • Quando o build de um projeto de banco de dados é executado, a pasta .\sql é populada com os arquivos que são necessários ao processo de deployment utilizando o VsDbCmd. Dependendo da configuração (release ou debug) estes arquivos serão criados em pastas diferentes dentro da pasta .\sql. Nós temos uma forma conveniente de fazer referência a pasta utilizando uma macro do Visual Studio $(var.Customers.TargetDir) .

  • Como o banco de dados faz referência a objetos de sistema nós precisamos incluir o arquivo master.dbschema.

  • Como o banco de dados faz referência ao projeto CustomerCLR nós precisamos incluir também essa .dll.




  1. Agora que os arquivos foram incluídos podemos definir o comando utilizado para instalar o banco de dados. As linhas a seguir são responsáveis por este passo:

Property="CmdLineRunDatabase1"

Value=""[WindowsFolder]system32\cmd.exe" /c pushd "[Database1Dir]" & "[VsDbCmdDir]VsDbCmd.exe" /a:Deploy /cs:"Data Source=[SqlServer];Integrated Security=True;Pooling=False" /dd+ /manifest:"[#Database1.deploymanifest]" /p:TargetDatabase="[CUSTOMERSDB]" /dsp:Sql" />

BinaryKey="WixCA"

DllEntry="CAQuietExec"

Execute="deferred"

Return="ignore"

TerminalServerAware="yes"/>



NOTA

  • O comando pushd é uma extensão da linha de comando. Ele armazena o nome do diretório atual para ser utilizado pelo comando popd antes de alterar o diretório para o destino especificado.

  • O comando pushd é extremamente importante. Se você não utilizar o comando pushd o diretório de trabalho será o System32 ou System64WoW, dependendo da arquitetura do SO (32 ou 64 bits). O Pushd garante que o script .sql gerado durante o deployment será levado ao local de instalação de cada banco de dados.

  • No Passo 2 nós configuramos algumas propriedades cruciais que agora começaremos a utilizar. Qualquer diretório definido no WiX podem ser referenciados através do seu Id. [WindowsFolder], [Database1Dir], e [VsDbCmdDir] são evoluídos para o seus caminhos respectivos.

  • A propriedade [SqlServer] é uma privada e resolve tanto localhost quanto localhost\[SQLINSTANCE]. Se o usuário informa uma instância de SQL específica, seja na interface ou através da linha de comando, o atributo SqlServer inclui o nome da instância.

  • O item [#Database1.deploymanifest] equivale ao caminho completo do deploymanifest.

  • /p:TargetDatabase é definido com o valor provido pelo usuário [CUSTOMERSDB].

  • Note o atributo TerminalServerAware. Estes atributos definem para o SO que há uma instalação sendo executada em uma sessão do Terminal Server. Podem ocorrer erros atípicos nesse cenário, normalmente em sessões do Windows 2003 Terminal Services.

Agora que temos um banco de dados definido, vamos dar uma olhada em alguns trechos específicos dos outros dois projetos.



  1. No Solution Explorer, vá até o projeto de instalação e abra o arquivo Database2.wxi localizado na pasta Components\Databases.

Quase todo o conteúdo é o mesmo do Database1.wxi exceto por alguns nomes de arquivos específicos que incluem o nome do projeto. Atenção a estas linhas:


File="[Database2Dir]Sales_Database.sqlcmdvars"

Action="create" ElementPath="//SqlCommandVariables/Properties/Property[\[]PropertyName='Customers'[\]]/PropertyValue"

Value="[CUSTOMERSDB]"

Node="value"

Sequence="1"

On="install"/>
Como o banco de dados Sales faz referência ao banco de dados Customers, é necessário nós incluir o arquivo Customers.dbschema.

Além disso, como o nosso instalador nos permite alterar o nome do banco de dados no momento da instalação, é necessário atualizar o arquivo sales_database.sqlcmdvars. É para este fim que utilizamos a tag schema util é uma extensão do WiX que adiciona uma série de novas funcionalidades à experiência padrão do Windows Installer. Para habilitar estas capacidades é preciso incluir a dll como uma referência de projeto e importá-la nos arquivos WiXS.



xmlns:sql="http://schemas.microsoft.com/wix/SqlExtension"

xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
O elemento XmlConfig possui uma série de atributos:


  • O atributo Action é definido para criar ou atualizar o item caso ele exista.

  • O atributo ElementPath é um trecho XSL que significa: Encontre o elemento “Property” que contém um elemento filho chamado “PropertyName” com o conteúdo texto equivalente a “Customers” e então encontre um elemento irmão que tenha o nome de “PropertyValue”. Isto serve para definir o contexto do nó.

  • O atributo Value especifica o valor do contexto do nó.

  • O atributo Node especifica quando atualizar um atributo ou o Texto do contexto do nó.

  • Se existirem múltiplas mudanças utilize o nó Sequence para especificar a ordem das mudanças.

Finalmente, observe algumas diferenças entre os projetos de servidor (Server Projects) e os projetos de banco de dados (Database Projects).

No projeto do instalador, abra o arquivo DatabaseServer1.wxi localizado na pasta Components\Databases.

A diferença prática está no fato de que o projeto de servidor possui um conjunto diferente de arquivos de saída.








Projetos de servidor apontam para o banco de dados master e é por este motivo que possuem o prefixo “master” hard-coded. Eles possuem ainda um arquivo especial chamado Server.sqlsettings.


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   ...   37   38   39   40   41   42   43   44   ...   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
Dispõe sobre
reunião ordinária
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
Relatório técnico
Universidade estadual
Conselho municipal
técnico científico
direitos humanos
científico período
espírito santo
pregão eletrônico
Curriculum vitae
Sequência didática
Quarta feira
prefeito municipal
distrito federal
conselho municipal
língua portuguesa
nossa senhora
educaçÃo secretaria
segunda feira
Pregão presencial
recursos humanos
Terça feira
educaçÃO ciência
agricultura familiar