Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

fed07

[RESOLVIDO] Problemas com SETUP.exe

Recommended Posts

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

Share this post


Link to post
Share on other 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"

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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"

Share this post


Link to post
Share on other 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 :)

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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"

Share this post


Link to post
Share on other 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ê.

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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"

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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"

Share this post


Link to post
Share on other 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)

Share this post


Link to post
Share on other 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"

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.