2009-07-14 6 views
0

Windows 배치 스크립트를 사용하는 기존 절차의 고급 버전을 사용하여 고객에게 소프트웨어를 출시 할 계획입니다. 이 과정을 개선하고 다음 항목의 설치를 자동화하기를 희망합니다 :배치 스크립트 설치 과정

  • 파일. 파일은 단순히 대상에 복사됩니다.
  • MSSQL 데이터베이스. OSQL 명령을 사용하여 데이터베이스에 대해 이러한 명령을 실행합니다.
  • IIS 가상 디렉터리. Windows 서버 버전에는 일반적으로 IIS 툴킷이 설치되어 있습니다.이 툴킷에는 명령 줄에서 가상 디렉터리와 기타 등등을 만들기위한 도구가 있으므로 사용할 것입니다. I think the "iiscnfg" is the one I use to insert previously saved config files into IIS.
  • Windows 서비스. 우리의 서비스에는 명령 줄에서 직접 설치할 수있는 기능이 있습니다.

그래서 각 응용 프로그램 배포를 위해 나는이 같은 구조를 가지고 :

get-release "Release3" 
:

Releases\ 
| get-release.bat 
| Release1\ 
| Release2\ 
| Release3\ 
| | Content\ 
| | | Application1\ 
| | | | bin\ 
| | | | | Application1.exe 
| | | | etc\ 
| | | | | Application1.config 
| | | | db\ 
| | | | | CreateDatabase.sql 
| | | | | CreateTable1.sql 
| | | | | CreateTable2.sql 
| | | | iis\ 
| | | | | Application1Web.xml 
| | | | pre.bat 
| | | | post.bat 
| | | | environment.bat 
| | | Application2\ 
| | | Application3\ 
| | | Application4\ 
| | Release1.doc 

그래서 기본적으로 당신이 릴리즈 디렉토리에 단자와 CD를 열을 같은 명령 뭔가를 실행

Release3 디렉토리의 모든 응용 프로그램에서 일련의 명령을 실행하고 모든 파일을 복사하고, configs, 모든 데이터베이스 및 iis 가상 디렉터리를 설치합니다.

파일 등의 대상 디렉토리를 백업하는 것과 조금 비슷하지만 그 순간에는 관련이 없습니다.

제 질문은 이처럼 배포 경험이있는 사람이 누구인지 그리고 다른 사람들의 경험을 통해 배울 수있는 실수가 있는지 질문하는 것입니다.

불행히도 우리는 MSI 패키지 나 NullSoft (나 자신을 잠시 나마 탈출시키는 사람)와 같이 갈 수 없습니다. 이렇게하지 않으면 수동으로 이루어 지므로 여기에서 스스로 돕기 위해 노력하고 있습니다.

답변

1

나는 이런 식의 스크립트를 굴 렸고, 가장 다루기 힘든 부분은 오류를 어떻게 처리합니까? 어떻게 발생합니까? 발생했을 때 어떻게 했습니까? 현재까지 수행 된 모든 변경 사항을 롤백 할 수 있습니다. 곧. 새로 설치하는 경우 비교적 간단합니다. 기존 시스템을 업데이트하는 경우에는 그렇게 간단하지 않습니다. (매번 완벽하게 작동한다고 가정해서는 안됩니다. 내일의 MS 업데이트로 인해 오늘의 스크립트가 중단 될 수 있습니다.)

배치 파일에서 합리적으로 할 수없는 몇 가지 사항이 있습니다. VB 스크립트, 자바 스크립트, 일부 Powershell 호출 또는 기타 어려운 작업을 처리 할 수 ​​있습니까?

+0

.NET 1.1 응용 프로그램에서 주요 기능 (IIS 가상 디렉터리, 데이터베이스 등 생성)을 번들로 묶어서 스크립트로 모두 묶는 방법을 고려하고 있습니다. 그들이 많이 도움이 될지 모르겠지만 아마도 우리는 우리 자신의 설치 프로그램 응용 프로그램 (.net)을 작성해야하지만 우리는 그 다음에 다시 사각형으로 돌아 왔습니다. – Nippysaurus

+0

Q1 : 기존 설치 프로그램을 구매하거나 사용할 수없는 이유는 무엇입니까? Q2 : 자신 만의 비용은 얼마입니까? (이 스레드에서 논의 된 시스템은 아무리 단순하다해도 설치 프로그램입니다.) AND 테스트 및 디버깅에 소요 된 시간 계산. 얼마나 많은 시간? 개발자/테스터 당 시간당 $ 시간? 피할 수없는 새로운 시스템의 첫 번째 사용 문제에 대한 분실로 인해 손실 된 요인. Q3 : 그렇게하지 않는 비용을 감안할 때, 왜 기존 설치 프로그램을 구입/사용할 수 없습니까? (모든 스크립트는 짧았고 작은 타겟 세트로 비용 효율적이었습니다.) –

1

배치 파일로 이와 같은 작업을 수행 할 때 어떤 문제도 나타나지 않습니다. 그러나, 머신 들간의 차이점 (디렉토리 누락, 이미 존재하는 디렉토리, 이미 존재하는 파일, 파일 버전 등)이 어떻게 될지 생각해보아야 할 것입니다. 다양한 기계.

설치 프로그램이 이미 이러한 문제의 대부분을 완화하므로 설치 프로그램을 사용할 수 없습니다. 본질적으로, 당신은 당신 자신의 설치 프로그램을 압연 할 것이고, 설치 프로그램이 여러분에게 줄 수있는 교훈, 우수 사례 등으로부터 이익을 얻지 못할 것입니다.

설치 프로그램을 사용하지 않고 수행 할 수없는 또 다른 사항은 운영 체제에서 잠근 파일을 설치하는 것입니다. 설치 프로그램은 임시 위치에 파일을 복사하고 레지스트리에 "다시 시작시로드"항목을 넣은 다음 사용자에게 컴퓨터를 다시 시작하도록 요청하여이 문제를 해결합니다.