Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

fed07

[RESOLVIDO] Problemas com SETUP.exe

Mensagens Recomendadas

fed07

Boas pessoal, é assim eu fiz um pequeno programa e usei o componente winsock que tive de fazer download da net para o vb.net.

O programa corre sem qualquer problema através do vb.net, só que quando tento abrir o setup.exe ele simplesmente deixa de responder. Eu uso o windows7 como SO.

img1

erroz.th.png

Alguém me pode ajudar? Eu acho que estou a criar o SETUP.exe bem. Será que de alguma forma tenho de incorporar o ficheiro ocx do winsock no setup?

>cumpz

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Tens de levar, no mínimo, o MSWINSCK.OCX com a aplicação.

Será uma sorte se a aplicação correr sem precisares de registar a biblioteca com o regsvr.

Aparte: A .NET traz suporte para comunicação TCP via sockets, nativa. Não há necessidade de usares o WinSock.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fed07

Sem dúvida que dá muito jeito mas o problema persiste, o programa continua a bloquear ao arrancar.

Incorporei a pasta do executável e até o .OCX do winsock mas continua igual.

O programa só corre se utilizar o .exe que ele cria (não o SETUP.exe) e tem de estar na pasta ../bin/debug.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Então o teu problema é outro.

No teu código de arranque, fazes alguma referência a um caminho que existe no teu ambiente de desenvolvimento, mas deixa obviamente de existir na release.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fed07

Pois eu também pensei nisso mas o meu arranque tá vazio lol.

Acho que vou dar uma vista de olhos pelo suporte de comunicação que o vb.net trás, desconhecia que trazia.

Obrigado pela info :)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fed07

Tem 2 ficheiros .dll referentes ao winsocket e eu incorporei os ficheiros no setup.

Agora estou a achar uma coisa muito estranha, no computador da minha namorada o programa corre, e no meu também, em todos os outros simplesmente deixa de responder logo ao iniciar..

:s

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Deixa-me adivinhar:

Também tens o VB instalado no pc da tua míuda ?

Em uma dessas máquinas que não dá, experimenta, só para rastrear, copiar os OCX e DLL (se tiver algum) referente ao WinSocket para C:\Windows\System32 e depois na linha de comandos fazes:

regsvr32 c:\windows\system32\ficheiro.ocx

(...)

Depois tenta correr.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Caso continue a não funcionar com a solução do Ribeiro, faz o debug da aplicação numa máquina em que não dê.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fed07

Por acaso ela não tem o VB no pc, mas ao longo do tempo tenho vindo a adicionar-lhe os ficheiros .dll que vinham estando em falta, relativos ao VB. xD

Tentei fazer isso, puxei o ficheiro .ocx e os ficheiros .dll(2) para o windows/system32/ e tentei fazer o regsvr32.

Com o .ocx correu bem, mas com os .dll ele dá um erro.

Diz que não encontra o ponto de entrada do DllRegisterServer.

Caso continue a não funcionar com a solução do Ribeiro, faz o debug da aplicação numa máquina em que não dê.

Err.. debug como assim?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Experimentaste depois, para despsite, correr a aplicação como administrador?

Melhor, desligando o UAC (User Account Control) (partindo do pressuposto que tens WinVista+ a correr) ?

O que o bioshock te está a tentar dizer é que instales lá o VB, abras e corras lá o projecto para ver onde rebenta.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fed07

Tentar correr como administrador foi logo das primeiras coisas que tentei e tudo igual.

Eu por habito tudo o que é PC cá em casa desactivo o UAC sempre.

Vou tentar fazer isso de instalar lá o VB.

Se o programa depois de instalar o VB começar a funcionar, que conclusão/resolução é que tiro disto? xD

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Chegas à conclusão de que não estás a levar com o executável todas as libraries necessárias.

Experimenta primeiro abrir e correr lá o projecto, depois se vê.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fed07

Hmm.. fiz o que sugeriste e realmente isto não está a correr noutro pc.

Tentei abrir o projecto e dá-me este erro logo ao tentar correr o programa:

Ocorreu um erro ao criar o formulário. Consulte a Exception.InnerException para obter detalhes. O erro é: Classe não registada (Excepção de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

O problema é que nem me diz onde está o erro e nem com o F8 vai lá. Ele rebenta logo ao segundo F8 (o primeiro passa pelo form load que está vazio)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Para além do WinSock, que outras bibliotecas e controlos usas, que não sejam nativos?

Isso é uma dependência que tens e não estás a transportar.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fed07

Só o winsock é que não é nativo, tudo o resto é.

De qualquer das formas resolvi o problema utilizando os sockets do vb.net, depois de muita pesquisa acabei por perceber que toda a gente que usa o winsock no vb.net acaba por ter este problema.

Obrigado pelo info ribeiro, não fazia ideia que o vb.net trazia os sockets.

Obrigado pela ajuda pessoal.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.