반응형
Windows 서비스의 전체 경로 가져 오기
Windows 서비스 .exe 파일이 동적으로 설치된 폴더를 어떻게 찾을 수 있습니까?
Path.GetFullPath(relativePath);
C:\WINDOWS\system32
디렉토리를 기반으로 경로를 반환합니다 .
그러나이 XmlDocument.Load(string filename)
메서드는 서비스 .exe 파일이 설치된 디렉터리 내의 상대 경로에 대해 작동하는 것으로 보입니다.
시험
System.Reflection.Assembly.GetEntryAssembly().Location
이 시도:
AppDomain.CurrentDomain.BaseDirectory
(예 : Windows 서비스 exe 경로를 찾는 방법 )
Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location)
이것은 Windows 서비스에서 작동합니다.
//CommandLine without the first and last two characters
//Path.GetDirectory seems to have some difficulties with these (special chars maybe?)
string cmdLine = Environment.CommandLine.Remove(Environment.CommandLine.Length - 2, 2).Remove(0, 1);
string workDir = Path.GetDirectoryName(cmdLine);
실행 파일의 절대 경로를 제공해야합니다.
위의 다른 버전 :
string path = Assembly.GetExecutingAssembly().Location;
FileInfo fileInfo = new FileInfo(path);
string dir = fileInfo.DirectoryName;
Environment.CurrentDirectory는 프로그램이 실행중인 현재 디렉터리를 반환합니다. Windows 서비스의 경우 실행 파일이 배포 된 위치가 아닌 실행 파일이 실행될 위치 인 % WINDIR % / system32 경로를 반환합니다.
실행 파일이있는 경로를 제공해야합니다.
Environment.CurrentDirectory;
그렇지 않은 경우 다음을 시도 할 수 있습니다.
Directory.GetParent(Assembly.GetEntryAssembly().Location).FullName
좀 더 해롭지 만 기능적인 방법 :
Path.GetFullPath("a").TrimEnd('a')
:)
참고 URL : https://stackoverflow.com/questions/199961/getting-full-path-for-windows-service
반응형
'Development Tip' 카테고리의 다른 글
두 날짜 사이의 개월 수를 계산하는 우아한 방법? (0) | 2020.12.09 |
---|---|
조각 오류 :“ID가 0 인 GoogleApiClient를 이미 관리하고 있습니다.” (0) | 2020.12.09 |
정규 표현식으로 IPv4 주소 유효성 검사 (0) | 2020.12.09 |
만드는 방법 (0) | 2020.12.09 |
변수를 항상 계산 결과와 같게 만들려면 어떻게해야합니까? (0) | 2020.12.09 |