ClickOnce를 사용하여 기본 Delphi 애플리케이션을 배포할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/51686

  •  09-06-2019
  •  | 
  •  

문제

Delphi 애플리케이션을 시작하는 데 사용되는 스텁 C# exe 없이 ClickOnce를 사용하여 기본 Delphi 애플리케이션을 배포할 수 있습니까?

VB6, C++ 및 기타 기본 Windows 응용 프로그램에도 동일한 질문이 적용됩니다.

도움이 되었습니까?

해결책

개인적으로 저는 애플리케이션 타임스탬프가 서버와 동기화되지 않을 때 자체 업데이트 프로세스를 시작하는 자체 메커니즘을 구축합니다.그리 어렵지는 않지만 간단한 작업은 아닙니다.

그런데 Delphi의 경우 타사 도움말을 사용할 수 있습니다.

http://www.tmssoftware.com/site/wupdate.asp

업데이트됨:

내 구현의 경우:

MyApp.EXE는 3가지 모드로 실행됩니다.

  1. 인수가 없는 MyApp.EXE.그러면 일반적으로 응용 프로그램이 시작됩니다.

    1.1 가장 먼저 하는 일은 서버에서 자체 파일 시간을 검증하는 것입니다.

    1.2 업데이트가 필요한 경우 업데이트된 파일을 "MyApp-YYYY-MM-DD-HH-MM-SS.exe"라는 파일로 다운로드합니다.

    1.3 그런 다음 명령 인수를 사용하여 "MyApp-YYYY-MM-DD-HH-MM-SS.exe"를 호출합니다.

    MyApp-YYYY-MM-DD-HH-MM-SS.exe  --update MyApp.EXE
    

    1.4 본 애플리케이션을 종료합니다.

    1.5 업데이트가 필요하지 않으면 응용 프로그램이 1.1부터 정상적으로 시작됩니다.

  2. MyApp.EXE --"FILENAME" 업데이트.

    2.1 성공할 때까지 100ms마다 "FILENAME"에 자신을 복사해 보세요.

    2.2 성공하면 "FILENAME"을 호출합니다.

    2.3 "FILNAME --delete MyApp-YYYY-MM-DD-HH-MM-SS.exe"를 호출하여 자신을 삭제합니다.

    2.4 종료

  3. MyApp.EXE --"FILENAME" 삭제

    3.1 성공할 때까지 500ms마다 "FILENAME" 파일을 삭제해 보세요.

    3.2 종료

나는 이미 7년 동안 내 응용 프로그램에 이 계획을 사용해 왔으며 잘 작동합니다.단계에는 많은 프로세스가 포함되므로 문제가 발생했을 때 디버깅하는 것은 상당히 고통스러울 수 있습니다.보다 간단한 문제 해결을 위해 추적 로깅을 많이 수행하는 것이 좋습니다.

행운을 빌어요

다른 팁

아니요, 앱의 진입점은 관리 코드여야 합니다.

이것은 블로그 게시물 ClickOnce의 주요 저자 중 한 명이자 다음의 저자인 Brian Noyes가 작성했습니다. ClickOnce를 사용한 스마트 클라이언트 배포.

앱이 정말 레거시인 경우(예:VB6, MFC, ATL 등), 비관리 코드 실행 파일과 마찬가지로 아니요, ClickOnce를 통해 실행 파일로 배포할 수 없습니다.

허용되는 해결 방법은 기본 exe를 시작하는 관리 코드 스텁 exe인 것 같습니다.

스텁 없이 이 작업을 수행할 수 있는지 100% 확신할 수는 없지만 이 문서에서 몇 가지 통찰력을 얻을 수 있습니다.

어떻게:관리되는 어셈블리의 COM 구성 요소가 있는 관리되지 않는 앱에 대한 ClickOnce 배포

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