ruta de ejecución

27/12/2006 - 11:36 por Juan Martínez | Informe spam
Hola: Estoy creando una aplicación vb.net (vengo del mundo vb6) y al utilizar
la forma
<appSettings>
<add key="ReportAlbaranes" value="./tmp/albaran.xml"/>
</appSettings>
en app.config con ./ para indicar el directorio raiz de mi app. me salta un
error de que no encuentra la ruta del fichero xml porque la ejecuta desde el
directorio ./bin/debug

El directorio tmp para albergar los ficheros temporales y de configuración
lo he creado a mano desde el propio IDE en el solution explorer.

Podéis prestarme alguna ayuda, por favor?

Muchísimas gracias... FELIZ NAVIDAD

Preguntas similare

Leer las respuestas

#6 SoftJaén
28/12/2006 - 15:35 | Informe spam
"Juan Martínez" escribió:

He hecho lo que dices y funciona, pero tiene el inconveniente de que te
muestra el MDI detrás de la pantalla de login, y eso no es muy bonito que
se diga. Lo soluciono haciendo un hide y ya está. En cualquier caso, y en
VB6 sin duda, cuando cierras el form que arranca la app. si antes (o creo
recordar que incluso después del unload(me)) has hecho un frmMDI.show la
aplicación NO FINALIZA, de esto estoy completamente seguro. Ahora en .net
es diferente, aunque realmente no quiero saber por que.



¡Ea! En Visual Basic .net la cosa cambia, porque los formularios son otra
clase más de las muchas existentes en el marco de trabajo de .net.

Si no deseas mostrar el formulario MDI hasta que la autenticación del
usuario sea correcta, deberás de habilitar un procedimiento «Sub Main» que
deberá ser el objeto inicial de la aplicación, tal y como se hacía en Visual
Basic clásico.

Para ello, añade un módulo a tu aplicación y crea en él un procedimiento
público «Sub Main». Una vez hecho ésto, entra en las Propiedades del
proyecto, y en la pestaña «Aplicación», deshabilita la casilla «Habilitar
marco de trabajo de la aplicación», para que la opción «Sub Main» se
encuentre disponible en el cuadro combinado «Objeto inicial».

El procedimiento «Sub Main» se quedaría más o menos de la siguiente manera:

Module Module1

Public Sub Main()

' Mostramos el formulario "login"
'
Dim frm As New frmLogin

Dim dr As DialogResult = frm.ShowDialog

' Si el resultado del cuadro de diálogo es
' distinto a OK, finalizará la aplicación.
'
If dr <> DialogResult.OK Then
Application.Exit()
Else
' La autenticación ha sido correcta, por lo que
' mostramos el formulario principal MDI
Application.Run(FrmPpal)
End If

End Sub

End Module

Pero para que todo esto funcione, el formulario "login" (que actúa como si
se tratara de un cuadro de diálogo), deberá de devolver un resultado, que
para el ejemplo que te he puesto, deberá ser el valor «DialogResult.OK».

Como me imagino que dicho formulario tendrá los típicos botones «Aceptar» y
«Cancelar», en el evento «Click» del botón «Aceptar» deberás ejecutar lo
siguiente:

Private Sub Button1_Click( ... ) Handles Button1.Click

' Proceso de autenticación
If Autenticacion = True Then

' La autenticación ha sido correcta, por lo que
' se cerrará el formulario.
'
Me.DialogResult = Windows.Forms.DialogResult.OK

Else

' La autenticación no ha sido correcta

End If

End Sub

Lo del publish es la creación de un instalador para tus clientes. menu
build->publish <nombreproyecto>. Antes, si teníamos una serie de
directorios para ficheros de configuración, librerías, etc. había una
opción al generar el instalador que te creaba dichos directorios al
realizar la instalación en el cliente, pero ahora la verdad es que no
entiendo nada de lo que hace (te crea unos directorios de nombres
rarísimos dentro del localsettings del home de usuario logado,
vamos que no entiendo nada). Bendito VB6.



Comprendo, pero si deseas información sobre la publicación de tu aplicación,
te remito a la ayuda de Visual Studio 2005. Ábrela y busca el tema
«Implementación ClickOnce», donde encontrarás otros temas relacionados sobre
dicha tecnología de implementación.

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#7 Juan Martínez
28/12/2006 - 19:16 | Informe spam
Gracias Enrique, mientras esperaba tu respuesta, he estado mirando MSDN y
descubierto lo de los proyectos de deployment, etc

Por Dios, que certificaciones debo estudiar para ponerme al día? Estoy
absolutamente obsoleto!!!!

Una vez más, te agradezco enormemente tu tiempo, cuando pases por madrid
mandame un mail, que te debo unas cañas.

salu2 y feliz año nuevo

"SoftJaén" wrote:

"Juan Martínez" escribió:

> He hecho lo que dices y funciona, pero tiene el inconveniente de que te
> muestra el MDI detrás de la pantalla de login, y eso no es muy bonito que
> se diga. Lo soluciono haciendo un hide y ya está. En cualquier caso, y en
> VB6 sin duda, cuando cierras el form que arranca la app. si antes (o creo
> recordar que incluso después del unload(me)) has hecho un frmMDI.show la
> aplicación NO FINALIZA, de esto estoy completamente seguro. Ahora en .net
> es diferente, aunque realmente no quiero saber por que.

¡Ea! En Visual Basic .net la cosa cambia, porque los formularios son otra
clase más de las muchas existentes en el marco de trabajo de .net.

Si no deseas mostrar el formulario MDI hasta que la autenticación del
usuario sea correcta, deberás de habilitar un procedimiento «Sub Main» que
deberá ser el objeto inicial de la aplicación, tal y como se hacía en Visual
Basic clásico.

Para ello, añade un módulo a tu aplicación y crea en él un procedimiento
público «Sub Main». Una vez hecho ésto, entra en las Propiedades del
proyecto, y en la pestaña «Aplicación», deshabilita la casilla «Habilitar
marco de trabajo de la aplicación», para que la opción «Sub Main» se
encuentre disponible en el cuadro combinado «Objeto inicial».

El procedimiento «Sub Main» se quedaría más o menos de la siguiente manera:

Module Module1

Public Sub Main()

' Mostramos el formulario "login"
'
Dim frm As New frmLogin

Dim dr As DialogResult = frm.ShowDialog

' Si el resultado del cuadro de diálogo es
' distinto a OK, finalizará la aplicación.
'
If dr <> DialogResult.OK Then
Application.Exit()
Else
' La autenticación ha sido correcta, por lo que
' mostramos el formulario principal MDI
Application.Run(FrmPpal)
End If

End Sub

End Module

Pero para que todo esto funcione, el formulario "login" (que actúa como si
se tratara de un cuadro de diálogo), deberá de devolver un resultado, que
para el ejemplo que te he puesto, deberá ser el valor «DialogResult.OK».

Como me imagino que dicho formulario tendrá los típicos botones «Aceptar» y
«Cancelar», en el evento «Click» del botón «Aceptar» deberás ejecutar lo
siguiente:

Private Sub Button1_Click( ... ) Handles Button1.Click

' Proceso de autenticación
If Autenticacion = True Then

' La autenticación ha sido correcta, por lo que
' se cerrará el formulario.
'
Me.DialogResult = Windows.Forms.DialogResult.OK

Else

' La autenticación no ha sido correcta

End If

End Sub

> Lo del publish es la creación de un instalador para tus clientes. menu
> build->publish <nombreproyecto>. Antes, si teníamos una serie de
> directorios para ficheros de configuración, librerías, etc. había una
> opción al generar el instalador que te creaba dichos directorios al
> realizar la instalación en el cliente, pero ahora la verdad es que no
> entiendo nada de lo que hace (te crea unos directorios de nombres
> rarísimos dentro del localsettings del home de usuario logado,
> vamos que no entiendo nada). Bendito VB6.

Comprendo, pero si deseas información sobre la publicación de tu aplicación,
te remito a la ayuda de Visual Studio 2005. Ábrela y busca el tema
«Implementación ClickOnce», donde encontrarás otros temas relacionados sobre
dicha tecnología de implementación.

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.





Respuesta Responder a este mensaje
#8 SoftJaén
28/12/2006 - 19:28 | Informe spam
"Juan Martínez" escribió:

Por Dios, que certificaciones debo estudiar para ponerme al día?
Estoy absolutamente obsoleto!!!!



¿Certificaciones de Microsoft? Si has comenzado con .net, pienso que será
mejor que te hagas con algún libro, curso o manual sobre Visual Basic 2005.
En el siguiente enlace encontrarás un curso escrito por los compañeros
Guillermo Som «El Guille» y Jorge Serrano:

http://www.desarrollaconmsdn.com/ms...index.html

Aparte, el propio Guillermo tiene su página web, donde encontrarás algún que
otro curso, aparte de abundante información sobre la plataforma .net:

http://www.elguille.info/

Una vez más, te agradezco enormemente tu tiempo,
cuando pases por madrid mandame un mail, que te
debo unas cañas.



¡Tomo nota! :-)

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#9 SoftJaén
28/12/2006 - 19:47 | Informe spam
Aquí tienes otro enlace donde podrás encontrar algún que otro recurso
interesante:

Centro de Desarrollo VB.NET (Microsoft)
http://www.microsoft.com/spanish/ms...fault.mspx

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#10 Roberto
02/01/2007 - 12:01 | Informe spam
¿Y si en las propiedades del proyecto pones Modo de apagado = Al cerrar el
último formulario?

"SoftJaén" wrote:

Aquí tienes otro enlace donde podrás encontrar algún que otro recurso
interesante:

Centro de Desarrollo VB.NET (Microsoft)
http://www.microsoft.com/spanish/ms...fault.mspx

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida