내부 비즈니스 응용 프로그램 용 Windows Installer가 의미가 있습니까?


14

이 상황에서 공통적 인 사항에 대한 일반적인 이해를 구축하여 더 추구하는 것이 합당한 지 결정할 수 있습니다.

  1. 다음과 같은 일반적인 회사 환경에서 설치 관리자를 환영합니까?
    • 변경 관리 프로세스
    • 개발 / QA / 생산 환경
    • 다양한 영역 (방화벽, 데이터베이스, 창 등)에 대해 지정된 배포 팀
  2. 설치 프로그램을 작성하기에 적합한 지 여부를 확인하기 위해 응용 프로그램에 적용 할 수있는 "litmus 테스트"가 있습니까? *
    • 모든 응용 프로그램에 설치 프로그램이 있어야 할만큼 설치 프로그램이 단순합니까?
    • 설치자가 올바른 도구일까요?
  3. 개발자가 설치 프로그램을 지원하기 위해 WiX와 같은 것을 배우는 것이 합리적입니까?
    • 일반적으로 유지 관리 가능성이 문제입니다. 즉, 설치 관리자를 틈새 기술로 만들고 있습니까?

*

예를 들어, 프로덕션 서버의 공유 디렉토리에있는 winform 응용 프로그램 세트가 있습니다. 특정 그룹은이 디렉토리에서 응용 프로그램을 실행할 수 있지만 시스템 관리자 만 실행 파일을 수정할 수 있습니다. 현재 배포 프로세스에는 관리자가 실행 파일과 라이브러리를 공유 디렉토리에 복사 / 붙여 넣기하는 작업이 포함됩니다.

응용 프로그램은 개별 사용자의 컴퓨터에 설치되어 있지 않으므로 이러한 응용 프로그램의 새 버전을 공유 디렉토리에 배포하기위한 설치 관리자를 만드는 것이 합리적입니까?

편집하다--

여기에 대한 답변이 확실한 조언을 제공한다고 생각했기 때문에 많은 수의 응용 프로그램을 작성하고 개별 폴더에 배포 해야하는 현재 프로젝트에서 얻은 내용을 공유하고 싶었습니다.

웹 프로젝트의 _PublishedWebsites 동작을 모방 한 _PublishedApplications 라는 NuGet 패키지를 찾았습니다 . NuGet 패키지를 프로젝트에 설치하고 빌드 아티팩트를 출력 경로의 _PublishedApplications 디렉토리에 복사 할 대상을 추가한다는 아이디어입니다. 이 동작은 명령 줄에서 MSBuild를 실행하고 outdir속성을 지정하여 활성화됩니다 .

msbuild /p:Configuration=Release /p:outdir=C:\path\to\outdir MySolution.sln

그러면 다음과 유사한 디렉토리 구조가 제공됩니다.

  • C : \ 경로 \ to \ outdir
    • _ 게시 된 응용 프로그램 \
      • 프로젝트 1 \
        • dlls, exes, etc.
      • 프로젝트 2 \
        • ...

여기에서 다양한 환경에서 추출 할 수있는 지퍼를 만드는 것은 상당히 고통 스럽습니다.


6
설치 프로그램을 제공해야하는 경우 설치 프로그램을 제공 할 수 .msi있습니까? 최소한 최소한의 고통으로 완전히 자동화 할 수 있습니다. (자신의 업데이트를 수행해야하는 비정기 사용자에 대해서는 여전히 이해가 가능합니다)
ZJR

귀하의 예 : 프로덕션 디렉토리의 이름을 임시 이름으로 바꾸고 모든 응용 프로그램 파일을 이름이 바뀐 디렉토리에 복사 한 다음 프로덕션 디렉토리의 이름을 다시 이전 이름으로 바꾸는 스크립트가 있습니다 (각각의 이름 뒤에 오류 검사를 수행합니다! ) 단계). 누군가 이전 버전을 사용하는 경우 첫 번째 이름 변경이 실패하고 실수로 프로덕션 환경을 파괴하지 않는다는 이점이 있습니다. 좋은 관리자는 그러한 스크립트를 스스로 만들 수 있지만, 그러한 "설치자"를 제공하면 다른 사람들은 감사 할 수 있습니다. 조직에 따라 다릅니다.
Doc Brown

@ Mark0978 : "Linux"와 "Windows"의 냄새가 나는가? 여기는 100 % 할인 된 주제입니다.
Doc Brown

답변:


20

배포시 관련 파일을 일부 폴더로 복사하고 EXE를 실행하는 것보다 복잡한 작업이 필요한 경우 설치 관리자는 항상 의미가 있습니다. 제품을 올바르게 설정하기 위해 추가 단계를 수행해야하는 경우 두 가지 방법이 있습니다.

  1. 누군가가 따라야 할 목록을 작성할 수 있습니다. 인간은 인간이고, 누군가는 그것을 망치고, 프로그램이 제대로 실행되지 않기 때문에 도움을 요청해야합니다.
  2. 컴퓨터가 따라야 할 목록 (설치 스크립트)을 작성할 수 있습니다. 따라서 사용자 오류로 인해 배포가 중단 될 가능성이 훨씬 줄어 듭니다.

반면에 수행해야 할 설정 작업이 없다면 zip 파일을 제공하십시오. 설치 프로그램을 실행하는 것보다 간단합니다.


11

Wyatt는 프로그래머 모자를 벗고 IT 모자 담당 이사를 씁니다.

이것이 내부 업무용 응용 프로그램 인 경우 하나의 환경 만 목표로하면됩니다. IT 책임자에게 전화하여 배포 관리 방법을 묻습니다. IT 부서는이를 오랫동안 처리해 왔기 때문에 xcopy 또는 MSI 기반 옵션 또는 현재 옵션과 같은 다른 옵션을 선호 할 수 있습니다.

나는 부서가 최소한 제스처를 고맙게 생각하고 기존 비즈니스 응용 프로그램 라인과 사용자가 알고있는 문제에 대해 더 많이 알기 때문에 귀중한 동맹자가 될 수 있다고 덧붙입니다.


5
+1 Ross는 Wyatt의 모자를 빌리고 IT 팀 은 설치자가 " 이것은 설치되었습니다 " 라는 지문을 남기기 때문에 설치자를 좋아한다고 덧붙입니다 .
로스 패터슨

3
내 IT 모자는 HTML5로 빌드하고 데스크탑에 설치를 종료한다고 말합니다!
보트 코더

8

Windows Installer 응용 프로그램은 Windows를 사용하는 환경에서 내부 비즈니스 응용 프로그램을 설치하는 데 널리 사용됩니다. 또한 응용 프로그램 수명 동안 사용자 시스템에서 응용 프로그램을 업데이트, 패치, 복구 또는 완전히 제거해야하는지 여부를 스스로에게 묻어 야합니다. 대부분의 경우 대답은 "예"입니다.이 경우 제대로 작성된 설치 관리자가 있으면 시간이 지남에 따라 응용 프로그램을 유지 관리하는 총 비용을 줄일 수 있습니다. 재시작 관리자 및 WMI와 같은 Windows Installer와 함께 작동하도록 설계된 다른 서비스와 기능 및 제품 및 패치 인벤토리 기능이 있습니다. 응용 프로그램에서 이러한 이점을 얻을 수 있다면 이것이 설치 프로그램을 포함시키는 또 다른 이유입니다.

응용 프로그램에 유용한 설치 프로그램을 개발하는 데 드는 초기 비용은 장기적으로 지불 할 수 있으며 WiX 또는 InstallShield 또는 기타와 같은 적절한 Windows Installer 제작 도구를 선택하면 개발 비용을 줄일 수 있습니다.


7

모든 엔지니어링 결정과 마찬가지로 결정됩니다.

아마도 가장 중요한 요소는 설치 프로세스의 소비자가 누구이며 개발 팀이 보유한 기술을 이해하는 것입니다.

내부적이므로 내부 IT 부서에서 배포 한 것으로 가정합니다. 그들은 아마도 포탄을 명령하는 낯선 사람이 아닐 것입니다.

그래픽 설치 마법사는 파일 서버 위치, 보안 정책 등과 같이 구성에 대한 간단한 가정이 더 이상 유효하지 않기 때문에 외부 고객에게 직접 배포되는 소프트웨어에 유용합니다. 따라서 각 사용자가 설정을 직접 선택하도록 안내해야합니다.

귀하의 환경에서이 항목은 아마도 개발 또는 IT에 의해 지시되며 거의 변경되지 않습니다. 따라서 쉘 스크립트를 사용하여 파일을 적절한 위치로 복사하는 것이 좋습니다. 스크립트는 릴리스 된 패키지의 일부로 제품 내에 있어야합니다. 또한 앱과 함께 버전을 제어해야합니다.

내가 작업하는 곳에서는 전체 웹 응용 프로그램이 InstallShield 마법사를 통해 설치되는데,이 파일은 파일 시스템 위치, DB 연결 정보 및 구성 파일로 끝나는 기타 설정에 대한 많은 질문을합니다. 자동화하기가 어렵습니다. 핵심에 웹 응용 프로그램 설치가 방금 몇 개의 데이터베이스를 생성하고 파일을 복사하기 때문에 .sql 파일을 실행하고 파일을 복사하는 Ant 또는 Powershell을 사용하여 새 설치 프로그램을 작성하고 있습니다.

그러면 누구나 작동 방식을 이해하고보다 효과적으로 유지할 수 있습니다.


배포 스크립트는 내가 필요한 것에 대한 실용적인 솔루션이라고 생각합니다. 설치 프로그램 기능을 재발 명할 수 있다고 우려했기 때문에 설치 프로그램의 경로를 찾는 것이 더 쉬운 지 알고 싶었습니다. 귀하의 답변에 따르면 설치 프로그램이 과도하게 사용되어 유지 관리가 쉽지 않은 것처럼 들립니다.
user1529856 2016 년

바로 그거죠. 인스톨러 기능을 재발 명했지만 과잉 일 가능성이있는 인스톨러입니다.
Brandon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.