Staram się zbudować ogólne zrozumienie tego, co jest wspólne w tej sytuacji, aby móc zdecydować, czy sensowne jest kontynuowanie tego.
- Czy instalatorzy są mile widziani w typowym środowisku korporacyjnym z następującymi elementami?
- Zmień proces kontroli
- Środowiska deweloperskie / QA / produkcyjne
- Wyznaczone zespoły wdrożeniowe dla różnych obszarów (zapora ogniowa, baza danych, okna itp.).
- Czy istnieje „test lakmusowy”, który można zastosować do aplikacji, aby sprawdzić, czy jest ona dobrym kandydatem do stworzenia instalatora? *
- Czy instalatory są na tyle proste, że każda aplikacja powinna je mieć?
- Czy instalatorzy są nawet właściwym narzędziem?
- Czy uzasadnione jest oczekiwanie, że programiści nauczą się czegoś takiego jak WiX do obsługi instalatorów?
- Utrzymanie w ogóle jest problemem, tzn. Czy tworzenie instalatora to niszowa umiejętność?
*
Na przykład mam zestaw aplikacji winform, które znajdują się we współdzielonym katalogu na serwerze produkcyjnym. Określone grupy mogą uruchamiać aplikacje z tego katalogu, ale tylko administratorzy systemu mogą modyfikować pliki wykonywalne. Obecny proces wdrażania wymaga, aby administrator skopiował / wkleił pliki wykonywalne i biblioteki do katalogu współdzielonego.
Ponieważ aplikacje nie są instalowane na komputerze poszczególnych użytkowników, czy sensowne jest utworzenie instalatora do wdrażania nowych wersji tych aplikacji we wspólnym katalogu?
Edytować--
Czułem, że odpowiedzi tutaj udzieliły solidnych porad, dlatego chciałem podzielić się tym, co wymyśliłem dla mojego obecnego projektu, w którym musiałem zbudować dużą liczbę aplikacji i wdrożyć je w poszczególnych folderach.
Znalazłem pakiet NuGet o nazwie _PublishedApplications, który naśladuje zachowanie _PublishedWebsites dla projektów internetowych. Chodzi o to, aby zainstalować pakiet NuGet w swoich projektach i dodaje cel, który skopiuje artefakty kompilacji do katalogu _PublishedApplications na ścieżce wyjściowej. To zachowanie jest aktywowane poprzez uruchomienie MSBuild z wiersza poleceń i określenie outdir
właściwości:
msbuild /p:Configuration=Release /p:outdir=C:\path\to\outdir MySolution.sln
To da ci strukturę katalogów podobną do następującej:
- C: \ ścieżka \ do \ outdir
- _Publikowane Aplikacje \
- Projekt 1\
dlls, exes, etc.
- Projekt2 \
...
- Projekt 1\
- _Publikowane Aplikacje \
Stamtąd tworzenie zamka błyskawicznego, który można wyodrębnić w różnych środowiskach, jest dość bezbolesne.
.msi
instalatora? Te przynajmniej mogą być w pełni zautomatyzowane przy minimalnym bólu. (choć nadal jest zrozumiały dla okazjonalnego użytkownika, który musi dokonywać własnych aktualizacji)