Partilhar via


Implantação privada vs. implantação central (SQL Server Compact)

Você pode implantar aplicativos gerenciados criados com SQL Server Compact 4.0 usando a implantação central ou particular do SQL Server Compact. Na implantação central, o SQL Server Compact é instalado em um computador através do executável da instalação. Na implantação privada, os arquivos binários do SQL Server Compact são colocados na própria pasta do aplicativo. A implantação privada no SQL Server Compact dessa maneira também é referenciada como implantação XCOPY do SQL Server Compact.

Com a implantação central, um aplicativo usa os assemblies gerenciados do SQL Server Compact (System.Data.SqlServerCe.dll e System.Data.SqlserverCe.Entity.dll) instalados no GAC (Cache de Assembly Global) e os componentes nativos do SQL Server Compact a partir de uma localidade central, ou seja, %Arquivos de Programas%\Microsoft SQL Server Compact Edition\v4.0. Se uma versão/atualização mais recente do SQL Server Compact 4.0 for instalada, os aplicativos que usam a implantação central do SQL Server Compact usarão a versão atualizada do SQL Server Compact 4.0 na sua próxima execução. Uma desvantagem em potencial da implantação central é que o SQL Server Compact 4.0 só pode ser instalado por um usuário com privilégio de Administrador no computador. (Isso ocorre porque esses privilégios são necessários à instalação dos assemblies no GAC e ao registro dos componentes nativos.) Se o aplicativo for implantado usando a tecnologia do ClickOnce, e o SQL Server Compact 4.0 for implantado centralmente como um pré-requisito durante a instalação, poderá haver falha na instalação porque o usuário não tem os privilégios necessários para instalar o SQL Server Compact 4.0.

Com a implantação privada, um aplicativo usa sua própria cópia local dos assemblies gerenciados do SQL Server Compact e as bibliotecas nativas exigidas do SQL Server Compact. Esses assemblies e bibliotecas nativas são empacotadas com o aplicativo e instalados no caminho de arquivo do aplicativo no sistema de destino quando implantados. Os assemblies SQL Server Compact implantados de forma privada precisam ter um número de versão posterior ao dos instalados centralmente no GAC para que o aplicativo use os assemblies implantados de forma privada e não os implantados centralmente. Se não houver assembly SQL Server Compact no GAC (SQL Server Compact não foi implantado centralmente no computador de destino), o aplicativo usará seus assemblies implantados de forma privada. Uma vantagem de usar a implantação privada é que, como os assemblies SQL Server Compact não são instalados no GAC e os componentes nativos não são registrados com COM e, portanto, o usuário não precisa dos privilégios administrativos no computador, evita-se, assim, os problemas em potencial enfrentados na implantação central em sistemas bloqueados. Mas a implantação privada atribui maior responsabilidade ao desenvolvedor, pois as atualizações de assemblies SQL Server Compact implantados de forma privada não podem ser efetuadas centralmente. Se for necessária uma atualização nos assemblies do SQL Server Compact implantados com o aplicativo, o desenvolvedor deverá recriar o aplicativo com uma versão do SQL Server Compact 4.0 que inclua as atualizações necessárias e, depois, publicá-lo novamente.

Instalação

O comportamento da instalação do SQL Server Compact 4.0 em sistemas operacionais de 32 e 64 bits ocorre da seguinte forma:

SQL Server Compact 4.0

Sistema operacional

32 bits

32 bits

Êxito

64 bits

Erro

Os assemblies nativos e gerenciados a seguir são instalados:

Assemblies gerenciados: São instalados no local %Arquivos de Programas%\Microsoft SQL Server Compact Edition\v4.0\Private:

  • System.Data.SqlServerCe.dll

  • System.Data.SqlServerCe.Entity.dll

Assemblies nativos: São instalados em %Arquivos de Programas%\Microsoft SQL Server Compact Edition\v4.0\Private\x86 e %Arquivos de Programas%\Microsoft SQL Server Compact Edition\v4.0\Private\amd64, exceto o arquivo sqlceoledb40.dll, cujo local é %Arquivos de Programas&\Microsoft SQL Server Compact Edition\v4.0.

  • sqlceca40.dll

  • sqlcecompact40.dll

  • sqlceer40EN.dll

  • sqlceme40.dll

  • sqlceoledb40.dll

  • sqlceqp40.dll

  • sqlcese40.dll

Além dos arquivos acima, há um assembly e um manifesto do Microsoft Visual C++ 2008 Runtime Libraries (CRT):

  • msvcr90.dll

  • Microsoft.VC90.CRT.manifest

Atualizações e implantação privada

Um dos problemas da implantação privada é que o CLR, por padrão, carrega assemblies do GAC. Por isso, é difícil enviar atualizações por push a assemblies SQL Server Compact implantados de forma privada quando existe uma versão anterior do SQL Server Compact no GAC, pois o CLR continua carregando os assemblies SQL Server Compact do GAC. O único caso onde um assembly implantado de forma privada será carregado pelo CLR ocorre quando ele tem uma versão de assembly que é diferente daquela no GAC, e o aplicativo foi compilado com o assembly que está implantado no GAC.

No SQL Server Compact 4.0, esse problema não foi endereçado por:

  • Incrementando o número de versão de assembly para todas as atualizações de software, inclusive hotfixes, pacotes de serviço, patches críticos e atualizações de segurança. A versão do assembly é incrementada desta forma: 4.0.0.1, 4.0.0.2, 4.0.0.3 e assim por diante.

  • Instalando cópias adicionais dos assemblies gerenciados (System.Data.SqlServerCe.dll e System.Data.SqlServerCe.Entity.dll) na seguinte pasta: %Arquivos de Programas%\Microsoft SQL Server Compact Edition\v4.0\Private.

Atualizações são aplicadas da maneira seguinte:

  • Para hotfixes comuns, a atualização é aplicada a todas as cópias de um ou ambos os assemblies gerenciados; porém, a versão do assembly só é atualizada para as cópias dos assemblies na pasta Privada. Isso garante que assemblies da pasta Privada em um computador de desenvolvimento tenham um número de versão mais recente do que os instalados no GAC para atualizações não críticas. Isso também garante que para aplicativos que usam a implantação privada em computadores onde a atualização é aplicada, o CLR continue carregando os assemblies SQL Server Compact 4.0 do caminho do aplicativo (pois o número de versão dos assemblies no GAC não muda).

  • Para atualizações de segurança, pacotes de serviço e atualizações críticas, a atualização é aplicada a todas as cópias dos dois assemblies gerenciados, e a versão do assembly também é atualizada para todos. Além disso, a Política de Publicador é atualizada para garantir o redirecionamento automático de todos os assemblies de versões anteriores para a nova versão. Isso garante que, em computadores nos quais a atualização é aplicada, o CLR carregue os assemblies gerenciados do GAC para todos os aplicativos do SQL Server Compact 4.0, inclusive os que usaram a implantação privada.

Desenvolvendo aplicativos que usam a implantação privada

Para desenvolver um aplicativo de área de trabalho que usa a implantação privada do SQL Server Compact 4.0:

  1. Verifique se as atualizações são atuais para SQL Server Compact 4.0 no computador de desenvolvimento.

  2. Acrescente qualquer referência aos dois assemblies gerenciados do SQL Server Compact em seu projeto navegando até a pasta %Arquivos de Programas%\Microsoft SQL Server Compact Edition\v4.0\Private na caixa de diálogo Adicionar Referência em Visual Studio. (Para aplicativos que usam a implantação central, estas referências são adicionadas da guia .NET.)

  3. Acrescente as bibliotecas nativas necessárias ao projeto. Elas devem ser adicionadas navegando até a pasta %Arquivos de Programas%\Microsoft SQL Server Compact Edition\v4.0\Private\x86 ou até a pasta %Arquivos de Programas%\Microsoft SQL Server Compact Edition\v4.0\Private\amd64 ou ambas. A pasta da qual você adiciona as bibliotecas nativas depende da plataforma (x86, x64ou Qualquer CPU) para a qual você está desenvolvendo seu aplicativo.

    No mínimo, os assemblies nativos seguir devem ser adicionados:

    • sqlceer40EN.dll

    • sqlceme40.dll

    • sqlceqp40.dll

    • sqlcese40.dll

    Todos os componentes nativos encontram um local na própria pasta particular. Para facilitar o gerenciamento e o uso, a estrutura da pasta dos componentes nativos das plataformas x86 e amd64, a estrutura de diretórios é idêntica na instalação.

    Dica

    A instalação do SQL Server Compact 4.0 de 64 bits inclui todos os componentes. Ela instala os componentes de 32 bits e de 64 bits, bem como componentes de arquitetura neutra na máquina. As instalações de 32 bits e 64 bits incluem arquivos nativos binários das duas arquiteturas para implantação particular. Assim, você não precisará extrair assemblies nativos de 64 bits para criar aplicativos do SQL Server Compact 4.0 para computadores de 64 bits quando estiver usando o ambiente de desenvolvimento de 32 bits. Você só precisa obter arquivos binários de 64 bits da pasta %Arquivos de Programas%\Microsoft SQL Server Compact Edition\v4.0\Private\amd64.

  4. Verifique se os assemblies gerenciados e as bibliotecas nativas adicionadas acima foram copiados na saída.

Para obter informações detalhadas sobre como criar aplicativos de área de trabalho, consulte o Criando aplicativos da área de trabalho (SQL Server Compact).

Consulte também

Referência

Implantando aplicativos de desktop

Conceitos

Criando aplicativos da área de trabalho (SQL Server Compact)