none
App Path en App.config

    Pregunta

  • Saludos

    Quiero poner en el App.Config la ruta de la aplicacion para referencia a los informes

    Tengo puesto esto:

     

    <configuration>

      <connectionStrings>

        <add name="default"

          connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Formacion;Integrated Security=SSPI;"

          providerName="System.Data.SqlClient" />

      </connectionStrings>

      <appSettings>

        <add key="RutaInformes" value="\Formacion.Informes" />

      </appSettings>

     </configuration>

     

    Donde Formacion.Informes es la cadena que contiene la ruta donde estan todos los informes

    ¿Como le podria añadir el App.Path?

     

    GRACIAS

    domingo, 19 de diciembre de 2010 16:23

Respuestas

  • ahh pero estan en distintos proyectos la formularios y los reportes

    en ese caso con la opcion que mencione no alcanza, lo que debes crear es un Post Build Event

    Build Events

    en el proyecto dodne estan los reportes, puedes crear un comando que se ejecute despues de compilar, y que copie los .rpt al otro proyecto, en la carpeta \bin\Debug


    usando el comando copy

    copy /Y "$(TargetDir)$(ProjectName).dll" "$(SolutionDir)lib\$(ProjectName).dll"

    usa los comodines que alli menciona $() para referenciar el otro proyecto

    Nota: el que puse alli es solo un ejmeplo, no es el mismo que en tu caso deberias usar

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 20 de diciembre de 2010 2:47
  • He intentado esto y no funciona

    copy $(SolutionDir)Formacion\bin\Formacion.Informes $(ProjectDir)*.RPT

     

    y me pone esto

     

     

    Error 37 El comando "copy C:\Formacion\Formacion\bin\Formacion.Informes C:\Formacion\Formacion.Informes\*.RPT" salió con el código 1. Formacion.Informes



    EDITO

     

    Ya lo he solucionado

    copy /y $(ProjectDir)\*.rpt  $(SolutionDir)Formacion\bin\Debug\Formacion.Informes\

    Pongo esto por si alguien comete el error que cometi yo

    $(ProjectDir)\*.rpt -> ORIGEN

    $(SolutionDir)Formacion\bin\Debug\Formacion.Informes\ -> Destino

    jueves, 23 de diciembre de 2010 10:47

Todas las respuestas

  • hola

    necesitas conocer la ruta en donde se encuentra el .exe de la aplicacion, para eso podrias utilizar

    Application.StartupPath

    entonces leyenco el valor del app.config podrias unir las dos partes

    Dim fullPath As String = Path.Combine(Application.StartupPath, ConfigurationManager.AppSettings("RutaInformes").ToString())

     

    Nota: recuerda agregar la referencia y el Imports a System.Configuration para poder usar la clase ConfigurationManager

    y el Imports a System.IO para poder usar la de Path

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 19 de diciembre de 2010 17:40
  • Bueno, pues ya he puesto eso

    En principio debera funcionar cuando la aplicacion este funcionando como un ejecutable, pero me da error al iniciar la aplicacion porque evidentemente el rpt no esta en la carpeta debug

    ¿Que haceis vosotros para solucionar esto?

    domingo, 19 de diciembre de 2010 21:06
  • hola

    revisa si el rpt tien la opcion

    Copy to Output Directory

    de esta forma cuando compiasl el archivo se copiara al  bin\Debug

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 19 de diciembre de 2010 22:50
  • No se me copia

    Tengo 5 proyectos y en las propiedades de compilacion de cada uno he puesto la ruta del debug del primero (para asegurarme)

    En cada uno de los proyectos, he puesto lo de copiar siempre, pero no se me copia

    lunes, 20 de diciembre de 2010 1:07
  • hola

    pero los .rpt los tienes en el mismo proyecto del .exe ? o estan en otro proyecto distinto

     

    Tengo 5 proyectos y en las propiedades de compilacion de cada uno he puesto la ruta del debug del primero

    ehh pero porque has realziado esto ? simplemente referenciando los proyecto esto se hace automatico, no necesitas cambiar la ruta de compilacion

    anteriormente indique que cambiees la opcion de output pero solo del los archivos .rpt especificos no del proyecto

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 20 de diciembre de 2010 1:23
  • Al principio, solo puse lo que me dijiste

    Al no funcionar fue cuando cambie el Debug de cada proyecto al directorio del primero

    Esto es lo que tengo, falta solo el nombre del primer proyecto que se llama Formacion

     

    Image and video hosting by TinyPic

     

     

     

    lunes, 20 de diciembre de 2010 1:33
  • ahh pero estan en distintos proyectos la formularios y los reportes

    en ese caso con la opcion que mencione no alcanza, lo que debes crear es un Post Build Event

    Build Events

    en el proyecto dodne estan los reportes, puedes crear un comando que se ejecute despues de compilar, y que copie los .rpt al otro proyecto, en la carpeta \bin\Debug


    usando el comando copy

    copy /Y "$(TargetDir)$(ProjectName).dll" "$(SolutionDir)lib\$(ProjectName).dll"

    usa los comodines que alli menciona $() para referenciar el otro proyecto

    Nota: el que puse alli es solo un ejmeplo, no es el mismo que en tu caso deberias usar

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 20 de diciembre de 2010 2:47
  • He intentado esto y no funciona

    copy $(SolutionDir)Formacion\bin\Formacion.Informes $(ProjectDir)*.RPT

     

    y me pone esto

     

     

    Error 37 El comando "copy C:\Formacion\Formacion\bin\Formacion.Informes C:\Formacion\Formacion.Informes\*.RPT" salió con el código 1. Formacion.Informes



    EDITO

     

    Ya lo he solucionado

    copy /y $(ProjectDir)\*.rpt  $(SolutionDir)Formacion\bin\Debug\Formacion.Informes\

    Pongo esto por si alguien comete el error que cometi yo

    $(ProjectDir)\*.rpt -> ORIGEN

    $(SolutionDir)Formacion\bin\Debug\Formacion.Informes\ -> Destino

    jueves, 23 de diciembre de 2010 10:47