.NET 4.0에서 Visual Studio 2010을 사용하고 있습니다. Visual Studio 설치 프로젝트에서 설치된 Windows 서비스가 있습니다. 설치 프로젝트에서 나는 RemovePreviousVersion 속성을 True로 설정했습니다.Installer 클래스에서 Windows 서비스를 중지하는 중 문제가 발생합니다. 이벤트가 너무 늦게 발생합니다.
서비스가 포함 된 프로젝트에는 이전 버전에서 업그레이드 할 때 서비스를 중지하는 데 사용할 설치 관리자 클래스가 있습니다.
소프트웨어를 업그레이드 할 때 서비스가 이미 존재하며 실행 중일 수 있습니다. 설치 중 실행중인 경우 설치 프로그램은 파일이 이미 사용 중이라는 메시지를 표시하고 다시 시도, 계속 또는 설치 종료 옵션을 제공합니다. 이 단계에서 서비스를 수동으로 중지하고 다시 시도를 클릭하면이 방법이 작동합니다. 하지만 최종 사용자가이 작업을 수행하기를 원하지 않습니다.
MessageBox를 BeforeInstall, BeforeUninstall (설치 프로그램 이벤트), Install, Uninstall, Commit, Rollback (오버라이드 된 메소드)에 배치 했으므로 설치 중에 이러한 메시지가 호출되는 것을 볼 수 있습니다.
설치가 실행되면 파일이 사용 중이라는 프롬프트가 설치 관리자 클래스 코드 앞에 표시됩니다. 일단 서비스를 중지하고 다시 시도하면 메시지 상자가 계속 표시되며 설치 클래스의 메시지 상자가 표시됩니다. 따라서 설치 관리자 클래스는 실제로 너무 늦게 호출되어 실제로 아무것도 수행하지 못합니다.
이전 버전의 .NET에서의 동작이라고 생각하지 않습니다.
누구든지이 문제를 접하거나 어떤 제안이 있습니까?
필요하다면 Visual Studio 2010과 함께 제공되는 InstallShiled LE 프로젝트를 사용해 볼 수도 있지만 가능한 경우 Visual Studio 설치 프로젝트로 솔루션을 아는 사람이 있는지 알고 싶습니다. .
감사합니다. 올바른 방향으로 나를 가리키고 있습니다. –