none
Windows Forms Setup + SqlServerExpress 2005 RRS feed

  • Pergunta

  • Olá preciso gerar um instalador para um sistema desktop que:

    1) Verifique se existe o .NET Framework necessário instalado.
    R: Isto consigo fazendo com Launch Condition e pedindo para o usuário instalar. (talvez tenha como instalar direto em caso de não ter instalado, mas se sim, não sei como fazer isto)

    2) Verifique se o SqlServer express já está instalado.

    2.1) Se estiver instalado, preciso ter acesso como usuário "Sa" e criar meu banco de dados, preciso garantir que somente o meu usuário do banco tenha acesso ao banco de dados criado.
    R: Não sei como fazer isto..

    2.2) Se o banco de dados não estiver instalado, preciso que o instalador ou o usuário instale o sqlServerExpress e em seguida fazer a criação do banco de dados do sistema e garantir que somente o meu usuário do banco tenha  acesso ao banco de dados criado.
    R: Não sei como fazer isto..

    Já vi comentário sobre Custom Actions do projeto de Setup, mas pelo que percebi custom action não tem autonomia para para a instalação ou retornar valores para o instalador, não entendi como poderia ser usado no caso do banco de dados.. talvez se gerasse uma Launch Condition que verificasse o sqlServeExpress existe e em seguida executar uma Custom Action que chame o instalador do sqlServerExpress. Mas neste caso como verificar novamente se o banco foi instalado para poder impedir a instalação?

    Paulo Moreira
    sexta-feira, 5 de março de 2010 20:51

Respostas

  • Olá Andre, tenho sim... estou fazendo o seguinte:

    obs: estou usando VS 2008

    1) Verifique se existe o .NET Framework necessário instalado.

    R: Estou adicionando o .net framework como um pré-requisito do meu projeto do tipo setup. Ai o próprio instalador verifica se tem o .net framework e se não tiver instala ele.

    2) Verifique se o SqlServer express já está instalado.

    R: Estou usando um instaler class (http://social.msdn.microsoft.com/Forums/pt-BR/vsgeralpt/thread/be102974-950e-4012-b0b9-016ef427daf9#d176e695-6fed-4af7-82bb-a0dd6271dd19)

    que usa esta classe http://msdn.microsoft.com/en-us/library/bb264562%28SQL.90%29.aspx como base e instala o sql server express por linha de comando.

    2.1) Se estiver instalado, preciso ter acesso como usuário "Sa" e criar meu banco de dados, preciso garantir que somente o meu usuário do banco tenha acesso ao banco de dados criado.

    R: Se estiver instalado, instalo um outra instância com um nome especifico que só o meu sistema usa. Na verdade sempre instalo uma nova instância para que somente o meu sistema controle esta instância. Agora quanto a garantir que somente o meu usuário tenha acesso precisária ter domínio completo sobre a máquina onde o banco é instalado. Como não tenho, estou desativando o usuário SA após finalizar as configurações e remover (deleto) todos os usuário do windows para evitar que seja possível logar como atenticação do windows.
    Para remover os usuários veja: http://www.linhadecodigo.com.br/Artigo.aspx?id=1644

    2.2) Se o banco de dados não estiver instalado, preciso que o instalador ou o usuário instale o sqlServerExpress e em seguida fazer a criação do banco de dados do sistema e garantir que somente o meu usuário do banco tenha  acesso ao banco de dados criado.

    R: Resposta foi dada no item 2.1
    Paulo Moreira
    • Marcado como Resposta paulo3011 terça-feira, 16 de março de 2010 18:16
    terça-feira, 16 de março de 2010 18:16

Todas as Respostas

  • Isso eh bem complicado de se fazer, com todos esses requisitos q vc quer.

    Sugiro que vc procure no CodeProject sobre instaladores, algo já pronto.

    Se sua pergunta foi respondida por favor marque a resposta como certa.
    terça-feira, 9 de março de 2010 02:30
  • Olá, na verdade acredito que tenha que ser realmente com estes requisitos porque é um sistema comercial que será vendido em grande escala então precisar instalar corretamente e fazer configurações para minimizar o risco de acesso não autorizado.. encontrei um artigo que resolve meu problema da instalação do sql server express e instala outra instância dele:

    http://msdn.microsoft.com/en-us/library/bb264562%28SQL.90%29.aspx

    Mas ainda preciso resolver o problema de configuração dos usuários da instância (proteger a instância do meu sistema contra acesso não autorizado).

    Paulo Moreira
    terça-feira, 9 de março de 2010 13:10
  • Paulo,

    Alguma novidade quanto a essa sua dúvida?
    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    terça-feira, 16 de março de 2010 16:53
    Moderador
  • Olá Andre, tenho sim... estou fazendo o seguinte:

    obs: estou usando VS 2008

    1) Verifique se existe o .NET Framework necessário instalado.

    R: Estou adicionando o .net framework como um pré-requisito do meu projeto do tipo setup. Ai o próprio instalador verifica se tem o .net framework e se não tiver instala ele.

    2) Verifique se o SqlServer express já está instalado.

    R: Estou usando um instaler class (http://social.msdn.microsoft.com/Forums/pt-BR/vsgeralpt/thread/be102974-950e-4012-b0b9-016ef427daf9#d176e695-6fed-4af7-82bb-a0dd6271dd19)

    que usa esta classe http://msdn.microsoft.com/en-us/library/bb264562%28SQL.90%29.aspx como base e instala o sql server express por linha de comando.

    2.1) Se estiver instalado, preciso ter acesso como usuário "Sa" e criar meu banco de dados, preciso garantir que somente o meu usuário do banco tenha acesso ao banco de dados criado.

    R: Se estiver instalado, instalo um outra instância com um nome especifico que só o meu sistema usa. Na verdade sempre instalo uma nova instância para que somente o meu sistema controle esta instância. Agora quanto a garantir que somente o meu usuário tenha acesso precisária ter domínio completo sobre a máquina onde o banco é instalado. Como não tenho, estou desativando o usuário SA após finalizar as configurações e remover (deleto) todos os usuário do windows para evitar que seja possível logar como atenticação do windows.
    Para remover os usuários veja: http://www.linhadecodigo.com.br/Artigo.aspx?id=1644

    2.2) Se o banco de dados não estiver instalado, preciso que o instalador ou o usuário instale o sqlServerExpress e em seguida fazer a criação do banco de dados do sistema e garantir que somente o meu usuário do banco tenha  acesso ao banco de dados criado.

    R: Resposta foi dada no item 2.1
    Paulo Moreira
    • Marcado como Resposta paulo3011 terça-feira, 16 de março de 2010 18:16
    terça-feira, 16 de março de 2010 18:16