Answered App Path en App.config

  • Sunday, December 19, 2010 4:23 PM
     
     

    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

All Replies

  • Sunday, December 19, 2010 5:40 PM
    Moderator
     
     

    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
  • Sunday, December 19, 2010 9:06 PM
     
     

    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?

  • Sunday, December 19, 2010 10:50 PM
    Moderator
     
     

    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
  • Monday, December 20, 2010 1:07 AM
     
     

    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

  • Monday, December 20, 2010 1:23 AM
    Moderator
     
     

    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
  • Monday, December 20, 2010 1:33 AM
     
     

    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

     

     

     

  • Monday, December 20, 2010 2:47 AM
    Moderator
     
     Answered

    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
  • Thursday, December 23, 2010 10:47 AM
     
     Answered

    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