2012-04-16 16 views
6

Zajmuję się tworzeniem aplikacji open source C#. Od jakiegoś czasu używam podstawowego instalatora .NET, który sam sobie zakodowałem. Jednak z ostatnią zmianą nie jest to już praktyczne, ponieważ musiałbym dodać do instalatora dużą liczbę plików - i mogą one ulec zmianie przy każdym wydaniu. Plik ZIP również nie jest praktyczny.Instalator dla aplikacji C#

Zrobiłem kilka sprawdzeń online, widzę wiele MSI, ClickOnce, samorozpakowujące się ZIPy i (imo najbardziej obiecujące) system NSIS. Żadne z nich nie wydaje się idealnie pasować do moich potrzeb, więc szukam porady na temat tego, którego systemu użyć.

Faktyczna instalacja mojego programu jest bardzo prosta. Zasadniczo wystarczy skopiować katalog bin \ Release (i wszystkie podkatalogi) na komputer klienta. Osiągnąłem to nieco ad-hoc, osadzając każdy plik w moim instalatorze .NET i utrzymując tabelę plików, co się dzieje.

Niestety, po prostu zlokalizowałem swoją aplikację. Mam teraz ponad 30 plików .resx (które są kompilowane do bibliotek dll i umieszczane w MORE podkatalogach przez Visual Studio) i, oczywiście, jest niepraktyczne dodawanie ponad 30 folderów i bibliotek DLL do mojego instalatora. Dlatego właśnie szukam tego.

Jest też kilka innych wymogów:

  • Instalator powinien szukać predefiniowanych katalogów na określony .exe. (Moja aplikacja została zaprojektowana jako drop in replacement) Jeśli nie zostanie znaleziony .exe, powinien poprosić o jej lokalizację.
  • Instalator powinien sprawdzić, czy istnieje "OldApp.exe.bak". Jeśli nie, powinien zmienić nazwę pliku "OldApp.exe" na "OldApp.exe.bak"
  • Instalator powinien zaktualizować pliki. Np. Jeśli "Culture.de.dll" nie ulegnie zmianie, instalator pozostawi go w spokoju.
  • Instalator powinien działać ze wszystkimi wersjami Windows wszystkich IDE .NET (VS, SharpDevelop, Mono, ect), ale nie musi pracować na innych platformach.
  • Po zbudowaniu rozwiązania instalator powinien zostać automatycznie zregenerowany. Innymi słowy, powinna działać w sekcji "Post-build".
  • Generowanie instalatora musi umożliwiać dodanie do repozytorium kodu źródłowego. Dzięki temu każdy, kto pobierze źródło mojej aplikacji, może również skompilować instalator.

Przepraszamy za długi post, doszedłem do wniosku, że lepiej jest opublikować więcej niż mniej.

+0

Jaka jest nazwa/adres URL twojej aplikacji open source? –

Odpowiedz

5

Polecam SharpSetup. Łączy w sobie WiX i C# w dość elastyczną implementację. Niewiele znalazłem, że nie może tego dokonać.

+0

Poszedłem z tym, ponieważ łączy WIX z innymi funkcjami. Bardzo przydatne :) – Xcelled194

2

Używamy WIX szerokim zakresie: http://wix.codeplex.com/

Być może trzeba będzie dostosować instalatorów z niektórych procedur wyjazdowych robić rzeczy niezwykłego, ale są haczyki w ramach Instalatora Windows, które pozwalają to zrobić.

Możesz umieścić te pliki definicji (XML) w kontrolce źródłowej i możesz skonfigurować kompilację do wykonania instalacji. Jednak każdy, kto uzyska twoje źródło, musiałby mieć zainstalowane narzędzia WIX.

1

WIX jest dobry. Zgodnie z Wikipedia, jest on używany przez Microsoft do tworzenia instalatorów dla niektórych własnych produktów.

1

Polecam NSIS.Z mojego doświadczenia wynika, że ​​każda wymagana przeze mnie funkcja instalatora została omówiona w dokumentacji NSIS lub przykładach społeczności. Nie mogę komentować integracji NSIS z Visual Studio, ponieważ używam NSIS zintegrowanego z moim serwerem kompilacji Jenkins. Wydaje się, że jest dostępny darmowy dodatek Visual Studio o nazwie Visual & Installer, który zapewnia integrację NSIS z Visual Studio. Nie używałem go osobiście, ale wydaje się, że jest obecnie aktywnie rozwijany, więc warto go sprawdzić.

Powiązane problemy