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

bioshock

Dlls necessárias / ficheiros

Recommended Posts

bioshock

Para uma actualização da aplicação, sem ter que desinstalar a aplicação actual e voltar a instala-la, gostaria de saber quais são os ficheiros que são necessários de uma aplicação para fazer um replace?

Por exemplo, se um novo form é actualizado, quais os ficheiros para actualizar esse form?

Share this post


Link to post
Share on other sites
ribeiro55

Todo o executável ou dependência (caso o executável as carregue @runtime).

Terás de acrescentar as dependências novas, se tiveres entretanto adicionado algumas.


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

O que é para ti "Todo o executável" ?

Estou a criar uma aplicação, em que estou a debate-la aqui: http://www.portugal-a-programar.pt/index.php?showtopic=34887, para fazer automaticamente as actualizações da aplicação.

Após aqui uns testes no meu PC, criei alguns processos que funcionam perfeitamente e criei o executável da aplicação (com o INNOSETUP), adicionei-lhe a dll necessária, testei e funcionou tudo perfeitamente.

Agora, experimentei correr aqui num portátil ao lado, a aplicação corre perfeitamente, mas ele dá erro quando tento fazer download de um ficheiro do FTP para o PC. Bem, os dados de authenticação vão no código..

Eu apenas utilizo para authenticação

ftp.Hostname = "ftp"
ftp.Username = "user"
ftp.Password = "pass"

Mas secalhar tem alguma coisa haver com o AUTH SSL, não?

Share this post


Link to post
Share on other sites
ribeiro55

Pode ser "n" coisas.

Para começar, que erro é devolvido?

Quando digo "Todo o executável" refiro-me ao ficheiro .EXE


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

Pois, foi o que eu sempre pus.

Eu quer-me parecer que a DLL não é instalada no PC do cliente. Digo isto, pois é única lógica que chego. Entrei no FTP pelo PC do cliente e funciona tudo bem, mas na aplicação não funciona.

E o erro que dá é: "Failed to create key in registry"

Share this post


Link to post
Share on other sites
ribeiro55

Que raio de DLL estás a usar para uploads e downloads, tão bera que precise de ter chaves no registo?

A .NET tem métodos nativos para download e upload de ficheiros.

Alternativamente, se o host environment for WinVista/7, tenta correr com direitos de administrador.

O erro descreve nitidamente uma tentativa de escrita no registo falhada, que pode ou não ter sido despoletada por a tal DLL.


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

Acreditas que o problema estava mesmo nos direitos de administrador? Nem me tinha lembrado disso.

Mas não existe forma de contornar isto? Se a aplicação rodar em 100 pc's em cada um tenho que ir lá e executar como administrador?

Share this post


Link to post
Share on other sites
ribeiro55

Primeiro despista o problema.

Se com admin correr, vais ter de descobrir onde e porque razão se está a tentar escrever no registo.


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

Bem, eu estou a usar a biblioteca chilkat..

Creio que existem métodos para resolver este problema, assim por alto apanhei este exemplo na net:

Dim securePass As New Security.SecureString()
Dim pass As String = "password"

For Each c As Char In pass
        securePass.AppendChar(c)
Next

' If there isn't a domain, set the argument to 'Nothing', as demonstrated below.
Process.Start("testsoftware\WinKBSel\WinKBSel1003.exe", "username", pass, Nothing)

Tenho que experimentar.

Outro ponto: Em relação ao que tu disseste:

Todo o executável ou dependência (caso o executável as carregue @runtime).

Terás de acrescentar as dependências novas, se tiveres entretanto adicionado algumas.

Vamos supor que existe uma alteração no FormClientes (por exemplo). Para actualizar o FormClientes, eu vou ter que uppar para o FTP o executável, correcto?

Porque se eu for à pasta onde está instalada a aplicação, os ficheiros que apenas aparecem são: O desinstalador, as dll's e o executável.

Share this post


Link to post
Share on other sites
ribeiro55

Sim. Os forms estão "contidos no ficheiro EXE".

Não tenho experiência com a biblioteca, não te posso ser grande ajuda.


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

Eu fiz aqui uma experiência rápida e pareceu-me funcionar bem!

Mas vou para casa e vou dar uma olhadela nisto mais pormenorizado e logo digo algo.

A biblioteca é muito porreira, simplifica os comandos.

Obrigado pela ajuda ribeiro :thumbsup:

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.