Pregunta

Tengo SQL Ce db en mi aplicación, que se incluye en el directorio de mi aplicación. Mientras se depura está bien, pero cuando se publica y se ejecuta con setup.exe, recupera el "archivo no encontrado" en el directorio temporal desde donde se ejecuta la aplicación. Me gustaría ejecutar desde una ubicación estándar, pero no sé cómo cambiarlo.

Estoy usando esta cadena:

SqlCeConnection connection = new SqlCeConnection("Data Source=database.sdf;Persist Security Info=False;");

Cuando ejecuto setup.exe, la aplicación nunca se inicia, indicando que en su directorio temporal no se encontró el archivo db. Cuando ejecuto app.exe, funciona. No lo entiendo ... :(

EDITAR: puedo ver que en la configuración del proyecto VS, hay una cadena de conexión y hay " Data Source = | DataDirectory | \ Database.sdf "

¿La ruta debería ser algo así como el directorio local? Gracias!

¿Fue útil?

Solución

Cree su cadena de conexión dinámicamente. Algo como esto:

string connString = string.Format("Data Source={0}; Persist Security Info=False;",
    Path.Combine(Application.StartupPath, "database.sdf"));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top