none
Instalación de proyecto de visual studio publicado

    Debate general

  • Hola a todos!

    A ver, os cuento un poco la mi situación.

    Llevo muy poco tiempo con el visual studio y acabo de terminar mi primera aplicación, para la cual utilicé las propias herramientas de base de datos que ofrece el programa, que me acabo de enterar que no son otras que las de SQLServer. El caso es que al publicar el proyecto e instalarlo en otro ordenador, se instala también SQLServer (con el consiguiente incremento de tiempo, aparte del incremento de espacio ocupado para una aplicación demasiado normalita) y me da una serie de errores que no me dejan utilizar la aplicación. Iba a resolver esos errores pero prefiero modificar la aplicación utilizando una base de datos de access y así no tener que hacer referencia a SQLServer y no haga falta instalarlo.

    He hecho una pequeña prueba creando la base de datos de access con sus correspondientes tablas, consultas y relaciones, luego he creado un nuevo proyecto de Visual Studio, he agregado como origen de datos el access creado, he introducido un formulario con un par de enlaces a una de las tablas, he creado una query de prueba de el dataset que se crea con el origen de datos y he publicado el proyecto. Tras la publicación e intentar instalar la aplicación me encuentro dos problemas: si lo intento instalar en otro ordenador me dice que no se han podido instalar todos los componentes necesarios (concretamente se "atasca" al instalar "microsoft .net framework 4 client provider"). Vuelvo a publicar el proyecto sin que instale el .net framework (que instalo yo "a mano") y al intentar instalar la apliación me sale un error de que "el proveedor 'Microsoft.ACE.OLEDB.12.0' no está registrado en el equipo local"; Por otra parte, si intento la instalacación en mi propio ordenador, me sale inmediatamente un error que dice:

       "Excepción no controlada en la aplicación. Si hace clic en continuar, etc etc... No se pudo encontrar el archivo 'C:\...\AppData\Local\Apps\2.0\...\Data\[Nombre de la base de datos].accdb"

    , y si pincho en "detalles", no entiendo nada de lo que sale

    Hay una serie de cosas que me descolocan, porque todo lo que busco relacionado con el tema hace referencia a código para enlazar access con Visual Studio, pero yo no he tenido que escribir ningún código para crear la conexión, ya que la he creado con el asistente de orígenes de datos

    En fin, que ando muy bastante perdido en este tema y los errores me vienen por todos lados. Primero quiero hacer una prueba sencilla y que funcione en otro pc antes de liarme a adaptar mi aplicación para utilizar la base de datos de access... si alguien me puede echar un cable lo agracecería mucho

    Saludos!

     

     

    sábado, 08 de octubre de 2011 21:21

Todas las respuestas

  • al intentar instalar la apliación me sale un error de que "el proveedor 'Microsoft.ACE.OLEDB.12.0' no está registrado en el equipo local";

    esto se debe a que seguramente estes trabjando bajo 64bits, con lo cual no hay soporte

    aqui se plantea el mismo tema

    http://social.msdn.microsoft.com/Forums/es-MX/vbes/thread/3152f888-ead5-433f-abf0-d1a7b4ff0655

    podrias tomar dos caminos

    - cambiar el target del proyecto a 32bits

    - o como comenta Enrique instalar el redistribuible de ACE para 64bits

    orque todo lo que busco relacionado con el tema hace referencia a código para enlazar access con Visual Studio, pero yo no he tenido que escribir ningún código para crear la conexión, ya que la he creado con el asistente de orígenes de datos

    el tema es que el asistente lo hace por ti pero por debajo el si crea conexiones a la db y ejecuta consultas a la base de datos

    es mas si analisas el codigo adjunto al .xsd veras que este genero codigo

    el tema es que falla el proveedor del servicio, no el codigo que el dataet tipado esta creando

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    sábado, 08 de octubre de 2011 23:14
  • En primer lugar, gracias por la respuesta, Leandro

    Bueno, estoy viendo que en lugar de facilitar las cosas queriendo hacer una aplicación instalable, las estoy complicando horrores. Cada vez tengo más claro que tenía que haber dejado la aplicación cuando la hice entera con el propio Excel (usando VBA), ya que, si bien la programación era más ardua, no tenía problema para que los demás la utilizaran pues era un simple archivo de excel (con miles de líneas de código, hojas y gráficos, pero un archivo de excel al fin y al cabo)

    Mi versión de windows parece ser que es de 32 bits y la del otro ordenador donde probé igual (porque no dice que sea de 64, o sea que me imagino que será también 32). El Visual Studio, en la pestaña "Compilar" la opción "Plataforma" está en x86 y no tiene más opciones.

    En fin, tengo que ir por partes. Primero quiero que me funcione la instalación en mi ordenador, luego solucionaré (si puedo, porque esto me está superando un poco ya) lo de un pc "cliente".

    Ya que me daba el error:

       "Excepción no controlada en la aplicación. Si hace clic en continuar, etc etc... No se pudo encontrar el archivo 'C:\...\AppData\Local\Apps\2.0\...\Data\[Nombre de la base de datos].accdb", pues mi sentido de lógica aplastante me ha dicho que simplemente copie mi base de datos en esa ubicación que me dice, y efectivamente, ahora funciona, pero me parece demasiado extraño que al crear la instalación, tenga yo que copiar "a mano" el archivo de la base de datos... ¿no se supone que Visual Studio la copia entre sus archivos necesarios??

    Cuando consiga solucionar esto, intentaré lo de la instalación en otro pc... ¿será necesario que los demás ordenadores tengan la misma versión de Access que yo? (actualmente 2007)

    Gracias de nuevo!

     

     

    domingo, 09 de octubre de 2011 12:01
  • Para empezar, al crear un instalador con VS, el no carga los archivos que nosotros necesitamos en nuestras publicaciones, sino debemos ser nosotros quienes le digamos al VS que archivos necesitamos y donde se instalaran.

    El asistente de conexion a datos te creo el vinculo a la base de datos pero a la hora de crear el instalador eras tu quien debias decierle al instalador donde estaba la base de datos y en donde deseabas que te la instalara para que tu aplicacion no padeciera lo que ahora padece y en  cuanto a si debes tener instalado el mismo acces que en tu maquina,  lo unico que debes tener en la maquina que usara la aplicacion es el proveedor de datos que en este caso es "Microsoft.Ace.OleDB.12.0" el que debe estar instalado en dicha maquina.

    Consejo: Traten de crear todo el trabajo de acceso a datos a puro codigo, para poder entender como funciona de lo contrario no sabran por donde tocar a la hora de las excepciones.

    Si deseas abrir tu aplicacion y entender el codigo, hazlo, y las dudas que te surjan, estamos para servirte y si deseas empezar la conexion de cero hasta la publicacion tambien estamos para darte una mano (entiendase ayuda, no hacer el trabajo).

    Cualquier duda estamos ONLINE...


    -------------------------------------------------------- Henry L. Díaz Gutiérrez Software Design, Corp. Guatemala, Centro America --------------------------------------- Microsoft Visual Studio 2010 Ultimate
    lunes, 10 de octubre de 2011 6:00
  • Gracias, Henry

    Ahora estoy rehaciendo el código para adaptarlo al origen de datos de access. Varias cosas

    ¿entonces cuando publique el proyecto, he de llevar la base de datos a una ubicación concreta de manera manual?

    Un problema que me encontrado es que no me cargaba los datos de una tabla en un combobox mediante el método "Fill" del tableAdapter, cosa que sí me funcionaba antes... lo que que hecho es crear con código una sql, "conectarla" de nuevo a la base de datos de access y llenar el combo con el .datasource, .displaymember y .valuemember. ¿es que los métodos del tableAdapter no funcionan para cargar controles cuando son bases de datos de access?

    Y una última cosa (por ahora, claro), yo estoy generando las consultas con el dataset que se me creó al crear el nuevo origen de datos con access. Por ahora funciona, pero... ¿está bien así o es mejor escribir las sql mediante código??

    Muchas gracias y un saludo

    Jose

     

     

    miércoles, 12 de octubre de 2011 9:04
  • Buenas tardes

    A ver: Ya he modificado el código para adaptarlo a la base de datos de access y he eliminado el origen de datos que tenía antes (que por cierto, al eliminarlo me han empezado a salir muchos errores de código en los diseñadores automáticos que hacían referencia a esa base de datos ¿no se deberían eliminar automáticamente igual que los crea automáticamente?)

    El caso es que he guardado la base de datos para la versión 2003, que es la versión que se encuentra en el ordenador "cliente" de prueba y la he vuelto a enlazar al visual studio, para que no me diera el error de "Microsoft.Ace.OleDB.12.0". Al instalar el paquete en ese equipo ha instalado "microsoft instaler 4.5" que es el único que he dejado para que instale, junto el .net framework 4 Client Profile dentro de los requisitos previos, me pide reiniciar el ordenador, cosa que me parece extraña porque normalmente las aplicaciones que uno se suele instalar no piden que se reinicie el equipo. Una vez instalado y al cargarse la aplicación me da este error (que el es mismo que me da al intentar instalarlo en mi propio ordenador donde he desarrollado la aplicación):

       "Excepción no controlada en la aplicación. Si hace clic en continuar, etc etc... No se pudo encontrar el archivo 'C:\...\AppData\Local\Apps\2.0\...\Data\[Nombre de la base de datos].mdb"

    A la vista de ese error he copiado la base de datos en esa ubicación y la aplicación ya sí se ejecuta, pero veo que los controles enlazados a los tableadapters no se cargan con los datos, sino que están vacíos (por ejemplo, un formulario con un combobox que se supone que "coge" los datos de una de las tablas, y está vacío, cuando la tabla he comprobado que sí tiene datos... por qué puede ser eso??

    Ya siento tantas preguntas, pero es que todo son problemas lo que me estoy encontrando

    Saludos y gracias!

     

    viernes, 14 de octubre de 2011 12:25