none
Problemas con recursos y ubicación de aplicación RRS feed

  • Pregunta

  • Buenas tardes, estoy desarrollando una aplicación que emplea archivos de recursos (resx), con la que tengo el problema de que si la aplicación (una vez compilada) es ejecutada fuera del directorio en el que se dispuso al compilarse, pues las funciones que llaman e invocan a los recursos no funcionan. Por ejemplo, si tras compilarse, se genera en el directorio "bin/Release", pues en cuanto la ejecuto fuera de ese directorio, eso falla.

    En este caso, me estoy basando a la hora de implementar recursos en lo indicado en http://juank.black-byte.com/csharp-aplicaciones-multilenguaje-globalizacion-localizacion/; pero mejor mostraré parte de mi código a continuación:

    private void españolESToolStripMenuItem_Click(object sender, EventArgs e)
        {
          string espanol = "es-ES";
          Thread.CurrentThread.CurrentUICulture = new CultureInfo(espanol);
          Properties.Settings1.Default.Culturelang = espanol;
          Properties.Settings1.Default.Save();
          SetLang();
        }
    
    
    private void SetLang()
        {
          fileToolStripMenuItem.Text = LangResource.fileToolStripMenu;
          openToolStripMenuItem.Text = LangResource.openToolStripMenu;
          fromYourComputerToolStripMenuItem.Text = LangResource.openfromcomputerTSM;
          exitToolStripMenuItem.Text = LangResource.exitToolStripMenu;
          settingsToolStripMenuItem.Text = LangResource.settingsToolStripMenu;
          colourToolStripMenuItem.Text = LangResource.colourTSM;
          blueToolStripMenuItem.Text = LangResource.bluecolour;
          yellowToolStripMenuItem.Text = LangResource.yellowcolour;
          redToolStripMenuItem.Text = LangResource.redcolour;
          limeToolStripMenuItem.Text = LangResource.limecolour;
        }
    
    
    Un saludo


    Ángel Manuel

    Blog Twitter

    lunes, 11 de julio de 2011 15:29

Respuestas

  • Hola Angel:

     

    He estado haciendo unas pruebas con lo que comentabas y he observado que al compilar la app genera en  bin/debug "asi lo tengo marcado yo" una carpeta con cada una de las culturas.

     

    Yo he utilizado "ES-AR" y me ha generado una carpeta como ES-AR en bin/debug donde guarda un archivo de la siguiente forma:

     

    <app>.resources.dll.

     

    Esto lo estás copiando al resto de carpetas donde no te funciona.

     

    Saludos.

     


    phurtado
    lunes, 11 de julio de 2011 17:03
    Moderador

Todas las respuestas

  • Hola Angel:

     

    Has comprobado que los archivos de recursos tienen marcada la opción "Recurso incrustado". En sus propiedades

     

    Saludos


    phurtado
    lunes, 11 de julio de 2011 15:51
    Moderador
  • Hola Angel:

     

    Has comprobado que los archivos de recursos tienen marcada la opción "Recurso incrustado". En sus propiedades

     

    Saludos


    phurtado

    Buenas, tras una comprobación, dichos archivos tienen marcada dicha opción, los cuales se sitúan en una subcarpeta con acción de compilación, aunque el problema se daba sin estar estos en subcarpeta alguna.

    Saludos


    Ángel Manuel

    Blog Twitter

    lunes, 11 de julio de 2011 15:53
  • Hola

    En la accion de compilacion marcaste: recurso incrustado y en copiar en directorio de resultado: copiar siempre?

    Quizás es el detalle que falta... Saludos
    lunes, 11 de julio de 2011 16:28
  • Hola Angel:

     

    He estado haciendo unas pruebas con lo que comentabas y he observado que al compilar la app genera en  bin/debug "asi lo tengo marcado yo" una carpeta con cada una de las culturas.

     

    Yo he utilizado "ES-AR" y me ha generado una carpeta como ES-AR en bin/debug donde guarda un archivo de la siguiente forma:

     

    <app>.resources.dll.

     

    Esto lo estás copiando al resto de carpetas donde no te funciona.

     

    Saludos.

     


    phurtado
    lunes, 11 de julio de 2011 17:03
    Moderador
  • Hola Angel:

     

    He estado haciendo unas pruebas con lo que comentabas y he observado que al compilar la app genera en  bin/debug "asi lo tengo marcado yo" una carpeta con cada una de las culturas.

     

    Yo he utilizado "ES-AR" y me ha generado una carpeta como ES-AR en bin/debug donde guarda un archivo de la siguiente forma:

     

    <app>.resources.dll.

     

    Esto lo estás copiando al resto de carpetas donde no te funciona.

     

    Saludos.

     


    phurtado

    Estimado Pedro, muchas gracias por la respuesta; una vez trasladadas esas carpetas al directorio del exe, sin problemas.

    Saludos


    Ángel Manuel

    Blog Twitter

    martes, 12 de julio de 2011 13:26