2009-11-15 4 views
0

내가 일하고 있어요 동안, 나는 내 응용 프로그램의 위치가 하드 코딩이 : 나는 패키지 내 응용 프로그램을 배포하면 내 프로그램이 설치된 위치를 추적하는 가장 간단한 방법은 무엇입니까?

public static string MYPROGRAM_PATH = "/path/to/my/workspace"; 

은 분명히이 작동하지 않습니다. 설치 위치를 어떻게 추적합니까?

저는 주로 리눅스 패키징 (특히 .deb 's)에 관심이 있지만, Windows 및 Mac 패키징에 대해 배우기위한 연습으로 사용할 계획이므로 모든 팁을 환영합니다.

답변

1

는 현재 작업 디렉토리를 얻을 것이다 .NET

Environment.CurrentDirectory 

의 설치/실행 위치를 결정하는 방법은 여러 가지가 있습니다. 당신이 프로그램 파일의 특정 위치에 응용 프로그램을 설치 한 경우

, 당신은 사용할 수 있습니다

Environment.SpecialFolder.ProgramFiles; 

나는 현재 실행중인 경로를 찾을 수있는 다른 여러 가지 방법이 거의 확실 해요.

리눅스와 관련해서는 Mono에서 실행 중이라고 가정합니다. 그렇다면 특수 폴더를 어떻게 처리하는지 정확하게 알지 못합니다.

즐기십시오! 이 프로그램의 .EXE의 경로를 원하는 경우 (당신이 디렉토리를 원하는 경우 또는 Path.GetDirectoryName(...)) 모노해야하므로

1

는, 적어도 마이크로 소프트의 .NET에서, 나는이 2.0 이후 또는 그 이전에 .NET되었습니다 생각 System.Reflection.Assembly.GetExecutingAssembly().Location있어 그 여기에서 호환 가능합니다 (은 방금 확인되었으며, Mono 설명서에 최소한 포함되어 있습니다).

1

소프트웨어를 deb (또는 rpm) 패키지로 패키지화하려면 패키지에/usr/bin에 프로그램을 설치하지 않는 것이 좋을 것입니다. 그렇지 않다면 설치하십시오./usr/local/bin에 있습니다. 그렇다면 프로그램 위치에 관해 20 가지 질문을 할 필요가 없습니다. 파일 시스템에 파일을 설치해야하는 위치에 대한 자세한 내용은 "hier"매뉴얼 페이지를 참조하십시오.

관련 문제