이 상황에서 공통적 인 사항에 대한 일반적인 이해를 구축하여 더 추구하는 것이 합당한 지 결정할 수 있습니다.
- 다음과 같은 일반적인 회사 환경에서 설치 관리자를 환영합니까?
- 변경 관리 프로세스
- 개발 / QA / 생산 환경
- 다양한 영역 (방화벽, 데이터베이스, 창 등)에 대해 지정된 배포 팀
- 설치 프로그램을 작성하기에 적합한 지 여부를 확인하기 위해 응용 프로그램에 적용 할 수있는 "litmus 테스트"가 있습니까? *
- 모든 응용 프로그램에 설치 프로그램이 있어야 할만큼 설치 프로그램이 단순합니까?
- 설치자가 올바른 도구일까요?
- 개발자가 설치 프로그램을 지원하기 위해 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 \
...
- 프로젝트 1 \
- _ 게시 된 응용 프로그램 \
여기에서 다양한 환경에서 추출 할 수있는 지퍼를 만드는 것은 상당히 고통 스럽습니다.
.msi
있습니까? 최소한 최소한의 고통으로 완전히 자동화 할 수 있습니다. (자신의 업데이트를 수행해야하는 비정기 사용자에 대해서는 여전히 이해가 가능합니다)