Winform 앱은 Main.exe와 Launcher.exe로 구성됩니다. Launcher 응용 프로그램의 목적은 Main.exe의 업데이트 된 버전을 확인하는 것입니다."내"네임 스페이스를 사용할 수없는 이유는 무엇입니까?
그것은 System.Diagnostics.Process.Start가 Main.exe를 같은 방법으로 업데이 트 위치에 복사합니다 새 Main.exe를 발견하고 실행하면
을(사용 Main.exe를를 시작에는 업데이트를 찾지 못하면 이 경우 Main.exe의 새로운 사본이됩니다).
Dim p As New ProcessStartInfo
p.FileName = "Main.exe"
p.WindowStyle = ProcessWindowStyle.Normal
Process.Start(p)
이 코드가 갱신되어 항상 성공적으로 Main.exe를을 발사인지 여부를 실행합니다
다음은 Process.Start를 코드입니다.
그러나 우리 Main.exe를, 그것은 처음 (예. 갱신 후) 등 My.Computer.FileSystem을
My.Settings 나, 내 네임 스페이스를 참조하는 모든 줄에 오류가 발생하지에 대한 실행중인 않다면 이 라인은 에러가 발생합니다 예를 들어: 여기
Msgbox(My.Computer.FileSystem.SpecialDirectories.Desktop)
오류입니다 :
System.IO.DirectoryNotFoundException: Could not find special directory 'Desktop'. at Microsoft.VisualBasic.FileIO.SpecialDirectories.GetDirectoryPath(String Directory, String DirectoryNameResID) at Microsoft.VisualBasic.FileIO.SpecialDirectories.get_Desktop() at Microsoft.VisualBasic.MyServices.SpecialDirectoriesProxy.get_Desktop()
그러나이 예는 데스크톱을 참조하면서이 중 하나를 찾을 수없는 기억 특별 디렉토리. 데스크톱에만 국한되지 않습니다.
처음 실행될 때 (즉, 업데이트 직후). 그 후에는 잘 돌아갑니다.
프로세스가 더 이상 실패한 경우 파일 시스템 문제, 잠금 또는 스레드와 관련하여 더 쉽게 이해할 수 있습니다. 그러나 왜 My namespace에 대한이 "사소한"문제가 있습니까?
어떤 오류가 발생합니까? – SLaks
Q에 예제 오류를 추가했습니다. – hawbsl