사용자 지정 동작이 작동하지 않는 것 같습니다. 내가 잘못하고있는 것 같아. 여기에 내가 뭘하려고하는지 :Visual Studio 2008 Installer 프로젝트 - 사용자 지정 작업이 실행되지 않음
실행 파일을 실행하는 내 응용 프로그램 설치 (Visual Studio Installer 프로젝트)에서 사용자 지정 작업을 실행하고 싶습니다. 실행 파일은 단순히 일부 system.io 파일 복사 작업을 수행하며, 실행 파일 자체가 완벽하게 작동 할 때 실행 파일임을 확인했습니다.
- 나는
- 는
- 는 사용자 지정 작업에 갔다 응용 프로그램 폴더에 EXE 파일 추가 설치 프로젝트를 생성하고
- InstallerClass 사실
- 로 설정 단계 커밋에 EXE 파일을 추가 설치 프로그램을 실행 , 내가 원하는 결과를 얻지 못했습니다. 그래서 Windows 로그에 기록 할 줄을 추가했습니다. 설치 프로그램을 다시 실행 한 후 Windows 로그에서 찾았습니다. 실행되지 않은 것처럼 보입니다. debug.break를 exe 코드에 추가했습니다 Unisntalled/다시 설치 한 설치 프로그램과 아무 일도 없었습니다. 나는 마침내 앉아서 프로세스를 보았고 exe가 결코 실행되지 않는다는 것을 확인했다.
의견이 있으십니까?
대상으로 체제 : Windows XP, 비스타 비주얼 스튜디오 버전 : 2008 SP1 언어 : VB.NET 프레임 워크 대상 : 2.0
우수한. 내가 게시 한 코드 덕택에 좀 더 가까워지고 있다고 생각합니다. VB로 변환하고이 오류가 발생합니다 : myexename.savedstate를 찾을 수 없습니다. 내가 게시 한 잠수함에 뭔가를 전달해야한다고 가정하지만, 나는 무엇을 모릅니다.
Imports System.ComponentModel Imports System.Configuration.Install _ Public Class ApplicationInstaller Inherits Installer Public Overloads Overrides Sub Commit(ByVal savedState As IDictionary) ' Do some work on commit The_Sub_I_Want_To_Run() End Sub Public Overloads Overrides Sub Install(ByVal stateSaver As IDictionary) ' Do some work on install End Sub Public Overloads Overrides Sub Uninstall(ByVal savedState As IDictionary) ' Do some work on uninstall End Sub End Class
내가 그 전화를하지 않았다 : 여기 (그런데이 콘솔 응용 프로그램입니다) 나는 System.Configuration.Install.dll에 대한 참조를 추가하는 것은 내 코드입니다. 전에 Installer 클래스를 사용한 적이 없습니다. 나는 신인 무언가를 여기에서하고 있을지도 모른다. 귀하의 지침에 따라, 내가 설치하는 동안 실행하려는 exe 아래에 붙여 넣은 코드를 추가했습니다. exe를 내 응용 프로그램 폴더에 추가 한 다음 커밋 사용자 지정 작업에 추가했습니다.
_
Public Class ApplicationInstaller
Inherits Installer
Public Overloads Overrides Sub Commit(ByVal savedState As IDictionary)
' Do some work on commit
The_Sub_I_Have_my_codein()
MyBase.Commit(savedState)
End Sub
Public Overloads Overrides Sub Install(ByVal stateSaver As IDictionary)
' Do some work on install
End Sub
Public Overloads Overrides Sub Uninstall(ByVal savedState As IDictionary)
' Do some work on uninstall
End Sub
End Class
흠 ... exe 인의 프로젝트 속성에서 내가 클릭을 "로그인 : 지금 여기에 내가 지금은 실행하기 위해 노력하고있어 내 EXE 파일의 소스에있는 코드 어셈블리 "오류가 사라졌습니다. 그러나 exe가 원하는 코드를 실행하지 않는 것처럼 보입니다.
Visual Studio 배포 프로젝트가 빠르며 의심 할 여지없이 문제가 발생할 것입니다. 대신 WiX를 사용하십시오. – erikkallen