ClickOnce에 대한 대안은 무엇입니까?
저는 ClickOnce를 수년에 걸쳐 많이 사용해 왔지만 많은 한계에 부딪 혔 습니다. 웹 배포를위한 대안은 무엇입니까?
지금까지 내가 표시 할 수 있었던 유일한 것은 ClickThrough인데 , 이것은 현재 WiX의 일부입니다 . 성공한 다른 사람이 있습니까?
WiX, NSIS 및 InstallAware를 사용한 후에는 소프트웨어 개발자로서 내가 정말로 필요로하는 것에 대해 모두 과잉이라고 겸손하게 인정해야합니다. 지금까지 Visual Studio 배포 프로젝트를 사용하여 배포 할 수없는 프로젝트가 없습니다.
제한적입니까? 예.
또한 배우고 사용하는 것도 매우 간단합니다. 또한 여기에 설명 된 기술을 사용하여 패치 (.MSP 파일) 자동 생성과 같은 정말 깔끔한 작업을 수행 할 수 있습니다.
Visual Studio 설치 프로젝트 내에서 모든 작업을 수행 할 수는 없지만 수행 할 수있는 작업 은 다소 놀랍습니다 . 무료이며 간편하며 솔직히 일반적인 사용은 WiX의 놀라운 XML (그대로 인상적)이나 InstallAware의 자세한 스크립트를 배우는 데 끝없는 시간을 보내는 것보다 더 나은 옵션입니다.
VS Setup을 사용하면 드래그 앤 드롭 및 빌드 'n'배포입니다. 내가 시도한 다른 모든 솔루션은 뒤로 물러났습니다. 프로젝트 출력을 자동으로 감지 할 수 없습니다 ... 또는 빌드에서 원하지 않는 출력을 포함하지 않도록 특수 필터가 필요합니다.
따라서 내 제안은 다음과 같습니다. 단순히 프로젝트를 배포하려면 다음을 배우십시오.
- 사용자 지정 설치 프로그램 클래스를 빌드하는 방법 및
- 자신의 필수 구성 요소 패키지를 작성하는 방법
둘 다 습득하기에 합리적으로 쉬운 기술이며 대부분의 개발자의 요구를 충족시킵니다.
Squirrel : ClickOnce와 비슷하지만 작동합니다.
Squirrel은 C # 또는 다른 언어로 작성된 데스크톱 Windows 애플리케이션의 설치 및 업데이트를 완벽하게 관리하기위한 도구 및 라이브러리 세트입니다 (즉, Squirrel은 네이티브 C ++ 애플리케이션을 관리 할 수 있음).
Squirrel은 NuGet 패키지를 사용하여 설치 및 업데이트 패키지를 만듭니다. 즉, 설치 관리자를 만드는 데 필요한 대부분을 이미 알고있을 것입니다.
ClickOnce에 어떤 제한이 있습니까? ClickOnce를 사용하지 않을 때는 NSIS (대부분의 다른 설치 프로그램 언어 / 시스템을 사용할 수 있음)를 사용하여 실행 가능한 자체 설치 응용 프로그램을 만듭니다.
즉, 다운로드를 실행하면 응용 프로그램이 실행되고 설정 질문이 없습니다. 영구적 인 설치를 허용하는 메뉴 옵션 또는 자주 사용하는 감지기가 있습니다.
두 가지 어려운 문제는 다음과 같습니다.
- 설정 파일
- 로컬 레지스트리 설정
설정 파일의 경우 원격 웹 서비스를 사용하여 상태 등을 보관합니다.
로컬 레지스트리 설정 (파일 연결 등)이 필요한 경우 적절한 설치를 수행해야하지만 사용자가 처음으로 응용 프로그램을 사용할 때 자동으로 수행 할 수 있습니다.
이것을 확인 하십시오 http://simpldeploy.com squirrel과 유사하지만 ClickOnce와 같은 VS에 통합되었습니다. ClickOnce와 같은 대화 상자 (선택 사항)가 있습니다.
ClickOnce는 응용 프로그램 업데이트에 지속적으로 실패하고 재설치가 필요하며 버그가 많고 불안정합니다. 그것은 내 경험이며 한 번 클릭에 대한 끊임없는 문제입니다. 클라이언트는 문제를 해결하기 위해 끊임없이 전화를 걸고 있습니다. 한 번 클릭하는 대신 나만의 간단한 솔리 션을 만드는 것에 대해 진지하게 생각했습니다.
참조 URL : https://stackoverflow.com/questions/623418/what-alternatives-are-there-to-clickonce
'development' 카테고리의 다른 글
Visual Studio 2013 프로젝트의 새로운 Startup.cs 파일은 무엇입니까? (0) | 2021.01.08 |
---|---|
Jenkins 파이프 라인에서 실패한 단계에 대한 재시도 옵션을 구현하려면 어떻게해야합니까? (0) | 2021.01.08 |
WebKitFormBoundary 뒤의 임의의 문자열은 무엇을 의미합니까? (0) | 2021.01.08 |
C #에 || = 또는 && = 연산자가없는 이유는 무엇입니까? (0) | 2021.01.08 |
C # 클래스 선언이 호출되기 전에 대괄호 안에있는 것은 무엇입니까? (0) | 2021.01.08 |