установить базу данных sql server с моим приложением c # - PullRequest
5 голосов
/ 07 марта 2011

Я написал приложение на C #, которое использует базу данных SQL Server.Предполагаемые пользователи этой программы будут работать под управлением SQL Server 2008 R2.Я создал программу установки (проект развертывания в Visual Studio), которая устанавливает мою программу, но я также хотел бы, чтобы она установила базу данных.Как мне добиться этого?

Ответы [ 5 ]

2 голосов
/ 09 марта 2011

просто вы должны добавить проект развертывания в ваш разработанный проект. скажем, назвали его proj_deploy, затем щелкните правой кнопкой мыши на этом проекте (proj_deploy) и выберите свойства, относящиеся к VS 2008/2010, затем перейдите к предварительным требованиям и выберите, какие элементы вы хотите установить на клиентскую машину, когда кто-то устанавливает ваш разработанный проект.

предварительными условиями являются начальные загрузчики, с помощью которых вы можете устанавливать сторонние инструменты и т. Д.

2 голосов
/ 07 марта 2011

Лучше позволить пользователям самим устанавливать SQL Server 2008. Это дает большую гибкость в отношении версий сервера базы данных, а также дает им возможность установить его на другой компьютер, если он им нужен. Настройка SQL в последнее время также стала довольно сложной и не очень простой. Если вам нужен встроенный SQL Server, вы можете использовать вместо него SQL Server Compact.

В вашем приложении вы можете создать необходимую БД на SQL Server 2005+, используя следующий код. Имейте в виду, что это требует привилегий SA на сервере SQL. Вам необходимо заменить% db_name% на фактическое имя базы данных.

IF NOT EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'%db_name%')
BEGIN
DECLARE @data_path nvarchar(1024), @db_path nvarchar(1024), @log_path nvarchar(1024)
EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\Microsoft SQL Server\Setup', N'SQLDataRoot', @data_path OUTPUT    
SET @db_path = @data_path + N'\Data\%db_name%_Data.MDF';
SET @log_path = @data_path + N'\Data\%db_name%_log.ldf';
EXECUTE (N'
    CREATE DATABASE [%db_name%]  ON (NAME = N''%db_name%_Data'', 
     FILENAME = N''' + @db_path  + N''',
     SIZE = 3, FILEGROWTH = 10%) LOG ON (NAME = N''%db_name%_Log'',
     FILENAME = N''' + @log_path + N''',
     SIZE = 3, FILEGROWTH = 10%)
     COLLATE SQL_Latin1_General_CP1_CI_AS')
END
2 голосов
/ 07 марта 2011

Вы можете написать собственное действие по установке.Взгляните на следующую статью .

0 голосов
/ 07 марта 2011

Если это клиент-серверное приложение, то SQL Server, скорее всего, уже будет существовать и не будет находиться на том же компьютере, что и ваше приложение.

Если это однопользовательское приложение базы данных, ярекомендовал бы использовать SQL Server Compact.Тогда «установка» состоит только из копирования некоторых библиотек.

0 голосов
/ 07 марта 2011

Вы не делаете. Что вы обычно делаете, так это то, что ваш установочный msi-файл имеет загрузчик, программу .exe, которая запускает установку MSI. Этот также проверит предварительные условия и запустит их установку, если это необходимо и доступно.

Проверьте http://wix.mindcapers.com/wiki/Bootstrapper для более подробного объяснения и некоторых примеров того, что вам доступно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...