Generowanie instalatora aplikacji c# połączonego z bazą sql server

0

Witam,

Mam taki problem - stworzyłem aplikację w C# i za pomocą NHibernate'a łączę się z bazą danych SQL Server 2008 R2. Ogólnie wszystko działa dobrze, tylko zastanawiam się jak rozwiązać sprawę instalowania aplikacji.

Ideałem byłaby baza danych na jakimś serwerze i instalowanie aplikacji klienckiej na dowolnym komputerze. Problem leży jednak w serwerze - nie mam funduszy, aby stworzyć swój serwer, a nie znalazłem żadnego darmowego, ani nawet względnie taniego hostingu (może ktoś zna?) obsługującego bazę danych SQL Server 2008.

Po odrzuceniu pierwszej opcji stwierdziłem, że zrobię instalkę aplikacji klienckiej i do tego będę instalował jakiegoś SQL Expressa i tworzył pustą bazę pod moją aplikację. Jednak nie wiem za bardzo jak to zrobić - instalkę aplikacji C# robi się bez problemu, ale jak zrobić do tego automatyczną instalkę SQL Servera i jeszcze tworzenie bazy, odpowiednich tabel itd. Znacie jakieś narzędzia do tworzenia takich instalek? Chciałbym, aby instalator jakoś sprawdzał czy jest zainstalowany SQL Server i jeśli nie, to go instalował. I dalej tworzył bazę itp. A dopiero później po sprawdzeniu czy wszystkie ustawienia i połączenia z bazą są ok instalował aplikację kliencką C#.

Ogólnie nie mam zbyt dużego doświadczenia, być może coś przeoczyłem i całe koncepcje są dziurawe. Bardzo proszę o pomoc i sugestie.

0

http://www.google.pl/search?q=mssql+express+install+command+prompt
Oczywiście jakbyś napisał jakiego instalatora używasz było by prościej...
No i jeszcze trzeba dodać opcję z bazą lub bez bo jak ktoś będzie chciał mieć np. na 3 stanowiskach program to każesz mu zainstalować 3 bazy i każde stanowisko będzie miało swoją kopię danych?

0

Dzięki za sugestie - spróbuję trochę pokombinować z instalką sqla przez command prompt.

Instalatora chcę użyć standardowego z Visual Studio (Setup Wizard), jeśli chodzi o instalator sqla, to chyba sql server 2008 r2 express.

No właśnie to jest największy problem z instalacją bez bazy, bo nie mam pomysłu jak zrobić jedną, zbiorczą bazę dla wszystkich aplikacji klienckich. Nie mam możliwości postawienia swojego serwera, a hostingi nie są takie tanie.. W takiej sytuacji chyba będę musiał za każdym razem instalować sqla i tworzyć bazę dla każdej aplikacji, chociaż bardzo mi się to nie podoba, ale nie mam pomysłu jak to inaczej zrobić..

0

To nie tak się robi. Jeśli używany jest standardowy instalator Visual Studio, to sama idea instalacji MS SQL Express jest dość prosta. Trzeba po prostu dodać do zależności MS SQL Express i tyle. Instalator (a ściślej, nie istalator tylko bootstrapper) sam sprawdzi czy MS SQL jest na komputerze jest zainstalowane i jeśli nie - to po prostu zainstaluje automatycznie, pobierając uprzednio z sieci albo odpalając lokalną instalkę.

Oczywiście pod warunkiem, że jest definicja bootstrappera dla ms sql express (w tej chwili nie pamiętam czy domyślnie jest) - jeśli nie, to taką defnicję trzeba najpierw utworzyć. Nie zalecałbym insstalacji z command line - musiałoby to byc wywołane z poziomu custom action, warto równiez pamiętać że nie mogą być przeprowadzane 2 instalacje równocześnie - jeśli odpalimy instalację naszego programu, to nie można jednocześnie odpalić instalacji mssql, nawet w trybie cichym. Dlatego instalację mssql (i innych wymaganych zależności) musi przeprowadzić bootstrapper, jeszcze przed rozpoczęciem właściwej instalacji finalnego produktu.

Oczywiście, takie ograniczenia ma instalator windows, jeśli jest używany inny instalator który ma własny silnik i nie korzysta z ułomnego msi, to sprawa może wyglądać inaczej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1