현재 내 응용 프로그램 용 자동 업데이트 프로그램을 작성 중입니다.C# : 브라우저에서 시작할 때 Directory.getCurrentDirectory()
내가 설정하고 싶습니다 (설치 프로그램, 업데이트 프로그램 및 제거 도구와 결합 된) 모든 자동 재료 : C에서
- 시작 메뉴 항목
- 폴더 : \ 프로그램 파일 \
- 구성 폴더 앱 데이터에서 "프로그램 & 기능"
- 바탕 화면 바로 가기에서
- 소프트웨어 제거-항목 (지역 로밍 /에 따라).
매우 잘 작동합니다. Program Files 및 레지스트리에 기록하려면 도구에 관리자 권한이 필요합니다. 그래서 원하는 소프트웨어를 선택한 후에 AppLauncher의 "다시 시작"을 추가했습니다. 이 같은 그냥 뭔가 :
ProcessStartInfo pi = new ProcessStartInfo(Directory.GetCurrentDirectory() + @"\AppLauncher.exe");
pi.Verb = "runas";
pi.Arguments = "install " + this.appItem.APID;
Process p = new Process();
p.StartInfo = pi;
try
{
p.Start();
Application application = Application.Current;
application.Shutdown();
}
catch (Exception ex)
{
MessageBox.Show("Unable to install the application.\n\n" + ex.ToString(), "Error",
application.Shutdown();
}
는 또한이 단계는 아주 잘 작동, 사용자가 폴더에 어딘가에 AppLauncher.exe를 저장하고 더블 클릭하여 시작
합니다.
사용자가 브라우저에서 "실행"을 선택하면 설치 관리자가 "AppLauncher.exe"를 찾을 수 없다는 메시지와 함께 표시됩니다. 그게 바로 브라우저 설정을 할 것입니다 다른 WORKINGDIRECTORY에서 파일을 시작하기 때문에
Directory.GetCurrentDirectory()
이 파일이있는 적절한 값을 반환하지 않습니다, 가정합니다. 사용자가 파일에 다른 이름을 지정하기로 결정한 경우 작동하지 않을 수도 있습니다.
그럼 어떻게해야합니까? P
참조 : http://stackoverflow.com/questions/218061/get-the-applications-path –