Pregunta

Buscando una manera de programar, o de otro modo, agregar una nueva instancia de SQL 2005 Express Edition a un sistema que ya tiene una instancia instalada. Tradicionalmente, ejecutas el instalador de Micrsoft como si estuviera en la línea de comando a continuación y funciona. Ejecutar el comando en mi instalador no es el problema, es más una cuestión de arrastrar alrededor de los 40 MB de instalador MS-SQL que no necesito si ya tienen instalado SQL Express. Esto es lo que mi instalador ejecuta actualmente:

SQLEXPR32.EXE /qb ADDLOCAL=ALL INSTANCENAME=<instancename> SECURITYMODE=SQL SAPWD=<password> SQLAUTOSTART=1 DISABLENETWORKPROTOCOLS=0

No necesito ayuda para iniciar este comando, sino la forma adecuada de agregar una nueva instancia de SQL 2005 Express sin volver a ejecutar el instalador completo.

Entraría en gran detalle sobre por qué quiero hacer esto, pero simplemente aburriría a todos. Es suficiente decir que tener esta capacidad de crear una nueva instancia sin el tiempo que lleva reinstalar SQL Express, etc. me ayudaría enormemente para la implementación de mi aplicación y su instalador. Si hay alguna diferencia para alguien, estoy usando una combinación de NSIS y Advanced Installer para este proyecto de instalación.

¿Fue útil?

Solución 3

Después de meses / años de investigar esto, parece que no se puede hacer. Bueno, supongo que solo reinstalo cada vez que quiero una nueva instancia. Supongo que es porque cada instancia es su propio servicio.

Otros consejos

Parece que una instancia de usuario podría ayudarte. Si tiene los archivos MDF y LDF, puede conectarse a los archivos indicando a SQL Server Express que inicie una instancia de usuario y adjunte el archivo especificado a esa instancia.

Este artil http://msdn.microsoft.com/en-us /library/bb264564.aspx tiene una buena descripción de cómo puede apoyarse en la instalación existente de SQL Server Express para crear una instancia específica del usuario durante la duración de su conexión.

Espero que ayude.

No sé cómo hacerlo con una API, pero si nadie ofrece una solución mejor, siempre puede usar Process.Start () para ejecutar su línea de comandos tal como está.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top