Usuário com melhor resposta
Windows Forms Setup + SqlServerExpress 2005

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
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
Todas as Respostas
-
-
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 -
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 -
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