문제

Windows 배치 스크립트를 사용하는 기존 절차의 고급 버전을 사용하여 고객에게 소프트웨어를 릴리스 할 수있는 절차를 계획하고 있습니다. 이 프로세스를 개선하고 다음 항목의 설치를 자동화하기를 바랍니다.

  • 파일. 파일은 단순히 목적지에 복사됩니다.
  • MSSQL 데이터베이스. OSQL 명령을 사용하여 데이터베이스에 대해 실행하겠습니다.
  • IIS 가상 디렉토리. Windows의 서버 버전에는 일반적으로 IIS 툴킷이 설치되어있어 가상 디렉토리를 만들기위한 몇 가지 도구와 명령 라인의 내용이 있으므로 사용하겠습니다. "IISCNFG"는 이전에 저장된 구성 파일을 IIS에 삽입하는 데 사용하는 것 같습니다..
  • Windows 서비스. 우리의 서비스는 명령 선에서 그들 자신을 설치할 수 있습니다.

따라서 각 응용 프로그램 배포마다 다음과 같은 구조가 있습니다.

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를 열고 다음과 같은 명령을 실행하십시오.

get-release "Release3"

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

파일 등의 대상 디렉토리 백업을 좋아하는 것이 조금 더 있습니다. 그러나 현재는 관련이 없습니다.

내 질문은 누구나 이와 같은 배치 경험이 있는지 여부와 실수가 있으면 다른 사람들의 경험으로부터 배울 수있는 것입니다.

불행히도 우리는 MSI 패키지 또는 그 NullSoft (이름이 지금 나를 탈출합니다)와 함께 갈 수 없습니다. 이와 같이 끝나지 않으면 수동으로 이루어 지므로 여기서 나 자신을 도와 주려고 노력하고 있습니다.

도움이 되었습니까?

해결책

나는 이와 같은 여러 스크립트를 굴 렸고, 가장 추악한 부분은 오류 처리입니다. 오류를 감지하는 방법, 발생할 때 수행하는 일, 현재까지 모든 변경 사항을 롤백 할 수 있습니까? 새로운 설치를하는 경우 비교적 간단합니다. 기존 시스템을 업데이트하는 경우 거의 간단하지 않습니다. (매력의 MS 업데이트는 결국 오늘의 대본을 깨뜨릴 수 있습니다.)

몇 가지가 있습니다.) 배치 파일 내에서 합리적으로 할 수는 없습니다. VB 스크립트, Java 스크립트, 일부 PowerShell 호출 또는 어려운 물건을 처리 할 수있는 다른 것을 미끄러 뜨릴 수 있습니까?

다른 팁

배치 파일로 이와 같은 일을하는 데 아무런 문제가 없습니다. 그러나 기계 (누락 된 디렉토리, 이미 기존 디렉토리, 이미 기존 파일, 파일 버전 등) 간의 차이점에 대해 약간의 생각을해야합니다. 다양한 기계.

설치자가 이미 이러한 문제의 대부분을 이미 완화하기 때문에 설치 프로그램을 사용할 수 없다는 것은 너무 나쁩니다. 본질적으로, 당신은 당신의 자신의 설치 프로그램을 굴릴 것이며, 당신은 배운 교훈, 모범 사례 등으로부터 혜택을받지 않을 것입니다.

설치 프로그램없이 할 수없는 또 다른 것은 운영 체제에서 잠겨있는 파일을 설치하는 것입니다. 설치자는 파일을 임시 위치에 복사하여 "재시작에로드"를 레지스트리로 입력 한 다음 사용자에게 컴퓨터를 다시 시작하도록 요청하여이를 처리합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top