문제

현재 클라이언트 소프트웨어를위한 4 개의 설치 프로그램이 있습니다.

  • ClientSetStest
  • ClientSetupProduction
  • clientUpDateTest
  • ClientUpDateProduction

그들 사이의 유일한 차이점은 설정에 Crystal Reports 재배포 가능한 파일이 포함되어 있으며 업데이트는 그렇지 않다는 것입니다. 테스트 및 생산은 그들이 실행하는 환경을 지정하고 Client.exe.config 파일에 하나의 줄이있는 유일한 차이점을 지정합니다.

멍청한, 나는 알고 있습니다. 그래서 Crystal Reports를 제거한 후 하나의 설치자로 모두 교체했습니다. 새 설치 프로그램은 선택한 환경을 Setup.config에 작성하여 파일 속성으로 참조합니다.여기를 봐).

"파일"속성은이 새 설치 프로그램을 사용하여 구성 파일에 새롭습니다. 내가 실행중인 문제는 이전 설치에서 client.exe.config 파일을 수정 한 다음 새 설치 프로그램을 실행하면 "파일"속성으로 구성 파일이 업데이트되지 않는다는 것입니다.

파일을 업데이트하도록 강요 할 수있는 방법이 있습니까? 내가 무언가를 오해하지 않는 한 다른 설치 프로그램이기 때문에 removepreviousversions는 정확히 작동하지 않습니다. 아마도 작동하는 나의 현재 아이디어는 OnbeForeInstall 메소드에 코드를 추가하여 이전 client.exe.config의 백업 파일로 이름을 바꾸는 것입니다. 그러나 설치 프로그램 자체 내에 더 간단한 솔루션이 있어야합니다. 어떤 아이디어?

편집하다: 기존 구성 파일을 client.exe.config.old로 호출하기 전에 기존 구성 파일을 바꾸기 시작했습니다. 그것은 파일의 이름을 바꾸었지만 새 파일을 쓴 적이 없습니다.

도움이 되었습니까?

해결책

Windows Installer는 수정 된 파일을 업데이트하지 않습니다.

비전식 파일은 사용자 데이터입니다. 수정 된 날짜가 컴퓨터의 파일 생성 날짜보다 늦은 경우 사용자 사용자 정의가 삭제되므로 파일을 설치하지 마십시오. 수정 및 작성 날짜가 동일하면 파일을 설치하십시오. 생성 날짜가 수정 된 날짜보다 늦은 경우 파일은 수정되지 않은 것으로 간주되며 파일을 설치하십시오.

몇 가지 옵션이 있습니다.

  • 파일을 제자리에 수정하는 사용자 정의 작업을 포함하십시오. 이것은 A 일 수 있습니다 스크립트 또는 .NET 코드.

  • 당신이 말한대로 행동하십시오 - 기존 파일을 방해하지 마십시오. 설치 프로그램은 멈추지 않습니다. 그러나 상상하는 순서대로 발생하는지 확인해야합니다. 너는 필요할지도 모른다 범고래 주문을 알아 내기 위해.

  • 작성 날짜를 "오늘"으로 설정하려면 사용자 정의 옵션을 포함하십시오. 이것은 스크립트 사용자 정의 조치를 사용하여 정말 간단해야합니다. Scripting.FilesyStemObject. 그런 다음 Windows Installer가 덮어 쓰게됩니다.

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