TL 알 수없는입니다실행 조립 위치
DR 왜
System.Reflection.Assembly.GetExecutingAssembly().Location
반환 "<Unknown>"
를?
전체 이야기 : 콘솔 응용 프로그램을 수동으로 실행하면 모든 것이 잘됩니다. 내 애플 리케이션을 실행하는 작업 스케줄러를 설정할 때 문제가있다 : 내 애플 리케이션은 일부 종속 파일을 찾을 수 없습니다. 이러한 파일은 .config 파일에 다음과 같이 작성됩니다. <add key="SomeFile" value="SomeFolder\SomeFile.xml"/>
, 상대 pathes 만 필요합니다.
작업 스케줄러에서 내 응용 프로그램이 system32에있는 taskeng.exe
에서 실행되기 때문에 '현재 폴더'= '응용 프로그램 폴더'를 수동으로 실행하지만 작업 스케줄러로 실행하면 '현재 폴더'= C:\Windows\system32
이됩니다. 이 답변 https://stackoverflow.com/a/16102640/6184866에서
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
:
그래서 조립 경로를 찾기 위해이 코드를 사용하고 싶습니다.하지만 작동하지 않습니다.
당신은 Directory.GetCurrentDirectory를 몇 가지 변수에서 동일하게 가져올 수 있습니다. 그런 다음 Directory.SetCurrentDirectory를 필요에 따라 다시 설정합니다. 작업을 완료하면 현재 디렉토리를 다시 temp로 설정합니다. –