Jump to content

Application Settings a ir buscar o valor usado na altura do compile?


3n1g
 Share

Recommended Posts

Boas.

A minha questão é a seguinte, tenho uma aplicação que usa os My.Settings com scope de Application, para poder ir buscar alguns valores configuráveis que são alterados no ficheiro exe.config manualmente.

O meu entendimento é de que a aplicação, ao iniciar iria utilizar os valores usados nos settings do exe.config e usá-los na aplicação, mas por mais que altere os valores no ficheiro ele insiste em usar os valores que continha no app.config na altura do compile.

PS: Retorno os valores usando My.Settings.SettingName para retornar o valor dos settings na aplicação.

O que me está a escapar?

Link to comment
Share on other sites

Em 26/03/2012 às 11:53, Caça disse:

Obrigado pela info mas não era a isto que me referia. Os meus settings são de scope Application pois servem para connection strings e outros settings iguais para todos os users.

Num pequeno update, correndo no meu pc ele vai buscar os settings correctamente ao ficheiro exe.config e funciona perfeitamente.

Em 2 servidores (teste e produção) já não os vai buscar e segue com os utilizados em compile. No servidor de testes estou a correr a app como Admin e com permissão de Full Control.

Link to comment
Share on other sites

Quando dizes que corres no servidor, referes-te a correr através de um caminho de rede, em outro terminal qualquer?

Se sim, à partida, o âmbito da aplicação é transportado para o terminal.

De qualquer das formas, da forma como o descreves só significa uma(ou todas) de três coisas:

1 - Não estás a alterar o ficheiro certo

2 - O ficheiro não existe

3 - Estás a alterar o nome do executável depois de o compilar.

Por estas é que prefiro utilizar o meu próprio sistema de guardar valores.

My.Settings é muito útil, como atalho para definições per user.

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"

Link to comment
Share on other sites

Quando dizes que corres no servidor, referes-te a correr através de um caminho de rede, em outro terminal qualquer?

Se sim, à partida, o âmbito da aplicação é transportado para o terminal.

De qualquer das formas, da forma como o descreves só significa uma(ou todas) de três coisas:

1 - Não estás a alterar o ficheiro certo

2 - O ficheiro não existe

3 - Estás a alterar o nome do executável depois de o compilar.

Por estas é que prefiro utilizar o meu próprio sistema de guardar valores.

My.Settings é muito útil, como atalho para definições per user.

Production Server- Caminho de rede, Test Server - Remote Desktop.

1 - Pelo que consegui descobrir (obrigado google!) os settings que a aplicação poderá estar a usar podem nem ser até os que estão no exe.config na pasta do executável, mas sim un ficheiro de configuração guardado em algum lugar obscuro nos DocumentAndSettings ou algum local parecido.

2 e 3 - O nome do executável não foi alterado, e o ficheiro do exe-configo está na pasta da aplicação, o que pode até não existir se ele o for buscar a algum outro caminho.

Link to comment
Share on other sites

Quando digo que não estás a alterar o ficheiro certo, não estou a insinuar que não sabes ver que estás a alterar o ficheiro que está imediatamente encostado ao executável, mas estou a dizer que a fonte pode não ser óbvia, como a tua pesquisa te mostrou.

Experimenta fazer um output (msgbox p.ex) de My.Application.Info.DirectoryPath.

Não estou a ver nenhuma razão para que a leitura das settings do âmbito da aplicação sejam lidas elsewhere.

De qualquer das formas, no teu ambiente de teste, onde acedes via RD, experimenta colocar %appdata% no executar (WinKey + R) e depois  %homepath%\AppData\Local\, procura o nome da tua aplicação e verifica se existe por aí, em ambos, o ficheiro de settings fujão.

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"

Link to comment
Share on other sites

Quando digo que não estás a alterar o ficheiro certo, não estou a insinuar que não sabes ver que estás a alterar o ficheiro que está imediatamente encostado ao executável, mas estou a dizer que a fonte pode não ser óbvia, como a tua pesquisa te mostrou.

Experimenta fazer um output (msgbox p.ex) de My.Application.Info.DirectoryPath.

Não estou a ver nenhuma razão para que a leitura das settings do âmbito da aplicação sejam lidas elsewhere.

De qualquer das formas, no teu ambiente de teste, onde acedes via RD, experimenta colocar %appdata% no executar (WinKey + R) e depois  %homepath%\AppData\Local\, procura o nome da tua aplicação e verifica se existe por aí, em ambos, o ficheiro de settings fujão.

O directoryPath aponta correctamente para a localização do exe e do exe.config.

Quanto aos settings no appdata são apenas user.config vazios pois este não tem de momento configs de utilizador individual.

Vou experimentar criar um novo projecto e ver se obtenho o mesmo resultado.

Link to comment
Share on other sites

O directoryPath aponta correctamente para a localização do exe e do exe.config.

Quanto aos settings no appdata são apenas user.config vazios pois este não tem de momento configs de utilizador individual.

Vou experimentar criar um novo projecto e ver se obtenho o mesmo resultado.

Bem, testei com novo projecto e nesse não tenho problemas.

Portanto é da aplicação, embora dê desktop para usar os settings alterados.

Ou seja apenas nos 2 servidores ele apresenta esse "problema".

Eliminei os configs de user da appData da aplicação e também não obtive resultado.

Começo a ficar sem ideias  ?

Link to comment
Share on other sites

Quem não tem cão, caça com gato.

Cria e consome o teu próprio ficheiro de settings, onde sabes exactamente onde está a fazer a leitura.

Com as settings, ias sempre ter o mesmo problema ao utilizar caminhos de rede...

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"

Link to comment
Share on other sites

Quem não tem cão, caça com gato.

Cria e consome o teu próprio ficheiro de settings, onde sabes exactamente onde está a fazer a leitura.

Com as settings, ias sempre ter o mesmo problema ao utilizar caminhos de rede...

Pois lá vai ter mesmo que ser. Antes perder tempo com isso e ter algo que posso re-utilizar e sei que funciona do que perder tempo à procura do "rato" e não chegar a lado nenhum e não continuar a funcionar.

Obrigado de qualquer das formas.  😁

Solved.

Link to comment
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
 Share

×
×
  • Create New...

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.