2008-09-13 3 views
20

상당히 간단한 WinForms 응용 프로그램을 설치하는 데 사용하는 Visual Studio 설치 프로젝트가 있습니다. 설치가 끝나면 사용자에게 응용 프로그램을 실행할지 묻는 단일 확인란을 표시하는 사용자 지정 사용자 인터페이스 페이지가 있습니다. 나는 다른 설치자가 이것을 아주 자주하는 것을 보았다. 그러나 설치가 완료된 후 설치 프로그램이 실행 파일을 실행하게하는 방법을 찾을 수 없습니다. 아이디어?설치 프로젝트 끝에서 실행 파일을 실행하는 방법은 무엇입니까?

참고 : 사용자 지정 작업은 설치 프로세스의 일부로 사용되므로 사용자 지정 작업을 사용할 수 없습니다. 설치가 끝날 때 사용자가 '닫기'단추를 누르면 설치 한 응용 프로그램을 실행하고 싶습니다.

답변

8

저는 이것이 Visual Studio 설치 프로젝트의 진정한 한계 중 하나라고 생각합니다. 설치 UI의 마지막 페이지를 수정할 수 있어야하지만 VS.NET에서는이를 수행 할 방법을 제공하지 않습니다. .MSI가 빌드 된 후에 테이블을 수정할 수는 있지만 VS.NET은 빌드 될 때마다 이러한 변경 사항을 덮어 쓸 것입니다. 설치 프로젝트에 포함 된 병합 모듈을 사용하여 마지막 페이지를 덮어 쓸 수 있습니다. 어느 쪽이든 .MSI에서 UI 대화 상자가 작성되는 방식에 익숙해 져야하며 이는 사소한 것이 아닙니다.

무료 스크립트 기반 설치 프로그램으로 전환하거나 상용 설치 저작 응용 프로그램을 구입하는 것을 고려해보십시오. Pete를 좋아하기 때문에 InstallShield를 구입하지 마십시오. InstallAware (비록 내가 그것을 사용하지 않은)보세요.

1

설치 프로그램 실행 파일을 실행하고 닫을 때까지 기다린 다음 두 번째 프로그램을 시작하는 VB 스크립트 장치를 만들어 내부 응용 프로그램에 대해 수행했습니다.

또한 C 실행 파일에서 몇 가지 Win API 호출을 사용하여 좀 더 세련된 방식으로이 작업을 수행 할 수도 있습니다.

4

또한 사용할 수있는 사용자 지정 작업

+0

도움이 될 하나 개의 좋은 링크입니다. 설치 후 실행됩니다. 설정 대화 상자에 추가 할 수있는 확인란을 조건 기반으로 만들 수도 있습니다. 조건 속성에서 CHECKBOXA1 = 1 예를 들어 –

4

난 그냥 외부 도구를 필요로하지 않는 아주 쉬운 방법을 발견했습니다. 주 프로젝트에 클래스 파일을 추가하고 설치 프로젝트에 사용자 지정 작업을 추가하면됩니다.

http://www.codeproject.com/KB/install/Installation.aspx

+0

덕분에 전체 프로세스를 훨씬 더 잘 이해할 수있었습니다. – DeveloperChris

+0

덕분에 유용한 링크 – Ahmed

0

나는 다음 줄을 사용하여 Main 메서드를 어셈블리를 호출 수행하여 관리 :

(typeof(ClassWithinAssemblyToExecute)).Assembly.EntryPoint.Invoke(null, new Object[] {}) 
+0

괜찮 았으므로 새 프로세스가 시작되지는 않지만 모든 요구 사항을 충족 시켰습니다. 해야 할 일은 작은 설정 양식을 실행하는 것입니다. – Grub

0

는 사용자 정의 설치하여 작업을 수행 할 수 있습니다. 설치자 클래스를 추가하면 설치 전, 설치하기 전에와 같은 많은 이벤트가 표시됩니다. 그냥 후 설치 후 프로세스 클래스에 의해 통해 UR EXE를 실행합니다. 나는 사용자 정의 설치 프로그램에 대한 자세한 내용을 찾으려면 uogle을 제안 할 것입니다. 여기에 U에게 http://www.codeproject.com/Articles/19560/Launching-Your-Application-After-Install-using-Vis

덕분에 사용자 지정 작업을 추가 선택하고 기본 출력 EXE를 찾아 볼 수 있습니다 관세 조치에 커밋 폴더에서

관련 문제