Как создать базу данных базы данных при установке программного обеспечения? - PullRequest
3 голосов
/ 30 ноября 2011

Я разработал небольшое приложение с серверной частью SQL SERVER, а также создаю установщик для приложения с фабрикой установки Indigo Rose 8.0.Что мне нужно, так это то, что я хочу автоматически создавать серверную часть базы данных с определенной учетной записью пользователя во время установки приложения.

Перед установщиком пользователю предлагается установить либо SQL-сервер, либо SQL Express в качестве предварительного условия, когдабаза данных установлена, установка программного обеспечения продолжается.Я пытался сделать с помощью сценария SQL, но я не знаю, как это сделать до установки на программу установки.Хотя я также встроил программу создания базы данных в основное приложение, и она будет выполняться по требованию пользователя после завершения установки, но я никогда не пробовал ее раньше, работает она или нет.

Если понадобится, я разработал систему на C # с бэкэндом SQL SERVER 2005.Не могли бы вы дать мне ответ, чтобы решить проблему?Спасибо

Ответы [ 2 ]

3 голосов
/ 30 ноября 2011

Самый простой способ - вызвать программу установки sqlcmd.exe для запуска сценария sql. Чтобы вызвать это, вам нужно знать источник данных (местоположение) экземпляра sql. Вам нужно будет получить это от пользователя. Например, имя машины, имя машины \ имя_экземпляра или обычно sqlexpress - это имя машины \ SQLExpress.

http://msdn.microsoft.com/en-us/library/ms165702.aspx

Вы также можете выполнить предварительные требования и установить sqlexpress для своего клиента. Для этого есть команда:

http://msdn.microsoft.com/en-us/library/ms144259.aspx

Другой вариант без SQL-зависимостей - написать собственное действие (командная строка / API), проанализировать операторы GO в скрипте и выполнить с ADO.net.

Другим вариантом за пределами настройки является разделение настроек и конфигурации. Программа установки устанавливает только биты, и база данных создается во время выполнения на этапе настройки среды выполнения продукта. Это имеет много преимуществ, включая возможность обновлять свои биты (либо с помощью патча, либо автоматически) после фазы установки и перед фазой конфигурации. Вы также можете улучшить интерактивность и решать проблемы во время выполнения - при установке вы можете отказаться от установки и откатить ее, что является плохим опытом.

Надеюсь, это поможет.

2 голосов
/ 30 ноября 2011

Брайан уже дал тебе хороший совет.Я бы рекомендовал, чтобы само приложение могло развертывать базу данных, запустив сценарий развертывания.Вы можете использовать библиотеку типа dbutilscmd , которая анализирует сценарии .sql и выполняет пакеты изнутри приложения.Я бы также посоветовал, чтобы ваши сценарии могли обновлять базу данных, а не просто развертывать ее.Это будет очень удобно при выпуске версии 2.0 приложения.См. Контроль версий и ваша база данных .

Одна вещь, на которую следует обратить внимание, это то, что для первоначального развертывания базы данных требуется контекст с повышенными привилегиями.Существуют некоторые варианты, см. Научите свои приложения хорошо играть с управлением учетными записями пользователей Windows Vista .

...