развертывание базы данных и приложения с помощью ClickOnce - PullRequest
5 голосов
/ 01 июня 2011

Я новичок в ClickOnce.Я создал приложение WinForms, используя C # и SQL Server Express.В настоящее время моя база данных находится в папке данных mssql.Моя строка подключения находится в файле app.config.

<add name="default"  providerName="System.Data.SqlClient"
  connectionString="Server=localhost\SQLEXPRESS;Database=DBase;Trusted_Connection=True;" />
  • Как включить файл базы данных для его развертывания с приложением?

  • В какую папку будет развернута база данных и будет ли работать строка подключения (см. Выше)?

1 Ответ

7 голосов
/ 02 июня 2011

У вас есть несколько вариантов. Во-первых, если это простая база данных, я рекомендую вам отказаться от использования SQL Express и использовать SQL Server Compact. База данных Compact SQL - это файл, который можно связать с установкой вашего приложения. Ниже приведена ссылка, описывающая процесс создания базы данных SQL Compact.

http://technet.microsoft.com/en-us/library/ms173009.aspx

Следующая ссылка обсуждает настройку необходимых зависимостей и предварительных условий для SQL Server Compact. (Обратите внимание, что вам необходимо прокрутить до раздела Развертывание на основе личных файлов .)

http://msdn.microsoft.com/en-us/library/aa983326(v=VS.100).aspx

Если у вас есть сложная база данных или база данных, размер которой может превышать ограничение в 3 ГБ, установленное для баз данных SQL Compact, единственной альтернативой является установка SQL Server Express в качестве необходимого условия для вашего приложения и после его установки создайте подпрограмма в вашем приложении, которая проверяет, существует ли ваша база данных в SQL Express, и, если нет, запускает подпрограмму создания и обновления базы данных.

В моем случае у меня тяжелое приложение, управляемое данными, которое было написано до выхода SQL Compact и должно было работать в средах, которые часто отключались от наших серверов. Мне пришлось использовать SQL Express, чтобы мы разработали механизм проверки обновлений базы данных, когда сервер был доступен. При наличии обновлений зашифрованные файлы сценариев загружаются и выполняются последовательно с дочерней базой данных. После обновления контейнера базы данных вызывается подпрограмма для проверки и синхронизации данных.

- EDIT -

Я хотел быстро ответить, что да, вы можете программно связывать и присоединять базу данных SQL Server к локальному экземпляру SQL Server. Существует множество препятствий для этого, и если у вас есть пользовательская база, которая использует несколько версий Windows, архитектуры ПК и несколько различных сценариев безопасности, у вас, вероятно, будут проблемы с последовательным подключением вашей базы данных к пользовательскому SQL Server. Да, это может быть сделано. Однако я бы рекомендовал избегать этого сценария любой возможной ценой.

...