none
Setup Project - Pré-requisitos RRS feed

  • Pergunta

  • Estou gerando um Setup Project no visual studio 2008 e precisarei adicionar um pré-requisito que a minha aplicação utiliza, mas que não está na listagem de pré-requisitos do próprio "Setup Project". Existe alguma maneira de executar uma instalação simultanea ao "Setup Project", por exemplo: Para a minha aplicação funcionar, precisarei instalar o owc11.exe (Web components). Eu tentei criar um novo processo no meu instalador, chamando o owc11.exe em modo "quiet" (sem apresentação de inteface com o usuário). Isso funcionaria perfeitamente se não fosse pelo detalhe de que o meu app e o próprio owc precisam do windows installer para ser instalado, e enquanto o meu instalador estiver aberto, o owc não pode ser executado. Alguém tem alguma idéia de como colocar esse pré-requisito na lista do "setup project" ou uma maneira de executar o outro instalador em paralelo, ou até após a finalização do meu instalador. Agradeço pela ajuda...
    segunda-feira, 1 de março de 2010 16:19

Respostas

  • Paulo,

    Eu tentei com a criação de uma Installer Class anteriormente, mas também não resolveu o problema.
    No momento deixarei o instalador sem esse "pré-requisito" e farei a instalação manualmente, executando os dois instaladores separadamente.

    De qualquer forma, fico muito agradecido pela ajuda, e assim que eu conseguir uma outra solução, não deixarei de postar aqui no fórum.
    Obrigado a todos.

    Carlos Casarin
    • Marcado como Resposta Carlos Casarin sexta-feira, 26 de março de 2010 16:25
    • Marcado como Resposta Carlos Casarin sexta-feira, 26 de março de 2010 16:26
    sexta-feira, 26 de março de 2010 16:25

Todas as Respostas

  • Carlos,

    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
    domingo, 14 de março de 2010 19:06
    Moderador
  • Bom dia André, Infelismente ainda não consegui solucionar esse problema. Acredito que não conseguirei resolver isso através do instalador do VS2008. Atenciosamente
    segunda-feira, 15 de março de 2010 13:17
  • OK Carlos,

    Assim que tiver alguma novidade, por favor, poste aqui para que outras pessoas possam se beneficiar também...
    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    segunda-feira, 15 de março de 2010 13:20
    Moderador
  • Olá você pode tentar usar uma installer class. De uma olhada neste exemplo:

    http://www.codeproject.com/KB/install/shortcut_installer.aspx

    http://msdn.microsoft.com/en-us/library/system.configuration.install.installer.aspx

    depois que vc cria a classe de instalação você vai no teu projeto de setup e adiciona a saída primária do projeto da classe de instalação na pasta de arquivos do sistema e em seguida vai em view->custom actions e adiciona a classe de instalçao como custom action na pasta install. Assim sempre que o teu setup finalizar a cópias dos arquivos do teu sistema ele vai executar esta classe. Nela você vai poder verificar se está faltando algum pré-requisito e instalar outros.

    Detalhe vc pode adicionar o windows installer como um pré-requisito e mudar a opção de download do site para download do mesmo local do projeto. Assim o visual studio vai embutir o windows installer junto com o teu setup e se ele não existir na máquina destino ele instala.
    Paulo Moreira
    terça-feira, 16 de março de 2010 14:55

  • Paulo,
    Obrigado pela dica, mas eu também já tentei fazer esse pré-requisito através da classe installer.
    A algum tempo atrás eu precisei instalar também um serviço do windows, com uma dll que não é do dotnet, consegui instalar através desta classe, criando um novo processo, com o nome da dll e os parametros de instalação, assim, ao executar o método install, ele registrava a dll e configurava o serviço. Segue um exemplo desta instalação:

    //Instala o processo através da linha de comando
    Process pcs = new Process();
    pcs.StartInfo.CreateNoWindow = true;
    pcs.StartInfo.FileName = "Servico";
    pcs.StartInfo.Arguments = "-install";
    pcs.StartInfo.WorkingDirectory = @"C:\DIR\DIR\BIN";
    pcs.Start();


    Então, seguindo a idéia, eu tentei fazer o mesmo para o OWC11.exe que é um componente do Office.
    Mas a questão é que para executar essa instalação, ele precisa do windows installer, e o windows installer já está sendo executado no meu instalador, então ele não permite duas instalações simultaneas.

    É possível executar dois windows installer ao mesmo tempo?
    há alguma outra maneira de executar a instalação, além desta que eu propus acima?

    Agradeço pela ajuda.

    Carlos Casarin

    quarta-feira, 17 de março de 2010 16:13
  • Olá Carlos, estou trabalhando em um setup parecido com o seu, mas no meu caso o pré-requisito é sql server express 2005. Eu preciso instalar um instância específica e configurar ela. A solução que estou trabalhando agora é:

    1) Criei um projeto chamado "InstallPrerequisitos". Neste projeto criei uma classe que instala o sql server express 2005 usado:

    Process myProcess = new Process();
    myProcess.StartInfo.FileName = setupFileLocation;
    myProcess.StartInfo.Arguments = "/qb " + parametros;
    myProcess.StartInfo.UseShellExecute = false;
    myProcess.Exited += new EventHandler(myProcess_Exited);
    myProcess.EnableRaisingEvents = true;
    return myProcess.Start();
    Após instalar o sql server express vou chamar o setup do projeto usando Process de forma parecida com a de cima.

    Paulo Moreira
    quarta-feira, 17 de março de 2010 17:13
  • Paulo,

    Eu tentei com a criação de uma Installer Class anteriormente, mas também não resolveu o problema.
    No momento deixarei o instalador sem esse "pré-requisito" e farei a instalação manualmente, executando os dois instaladores separadamente.

    De qualquer forma, fico muito agradecido pela ajuda, e assim que eu conseguir uma outra solução, não deixarei de postar aqui no fórum.
    Obrigado a todos.

    Carlos Casarin
    • Marcado como Resposta Carlos Casarin sexta-feira, 26 de março de 2010 16:25
    • Marcado como Resposta Carlos Casarin sexta-feira, 26 de março de 2010 16:26
    sexta-feira, 26 de março de 2010 16:25