150

.exe를 복사하면 새 경로를 얻을 수 있으므로 내 .exe 경로를 어떻게 얻을 수 있습니까?

4 답변


188

System.Reflection.Assembly.GetEntryAssembly().Location;


  • 나는 단지 경로를 원했지만이 명령이 나에게 경로 + exe의 파일 이름을 준다는 것을 알았다. :-( 다른 손에서 GetEntryAssembly (). Location은 "file : //"이있는 경로를 제공합니다. - 필요한 것은AppDomain.CurrentDomain.BaseDirectory - user799821
  • 단위 테스트 프로젝트에서는 작동하지 않습니다. GetEntryAssembly ()가 null입니다. - Eric J.
  • System.Reflection.Assembly.GetExecutingAssembly (). 위치는 실행중인 어셈블리가 현재 위치하는 위치를 반환합니다. 실행하지 않을 때 어셈블리가있는 위치 일 수도 있고 없을 수도 있습니다. 섀도 복사 어셈블리의 경우 임시 디렉터리에 경로가 생깁니다. System.Reflection.Assembly.GetExecutingAssembly (). CodeBase는 & # 39; permenant & # 39; 어셈블리의 경로. - Cyrus
  • @ user799821 그냥 사용하십시오.Path.GetDirectoryName파일 이름없이 폴더를 가져옵니다. - ProfK
  • @ProfK : 고마워. 그게 내가 필요한거야. 전체 솔루션이 나를 위해 일했습니다.System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase) - SnookerC

95

게다가:

AppDomain.CurrentDomain.BaseDirectory
Assembly.GetEntryAssembly().Location


  • AppDomain.CurrentDomain.BaseDirectory는 단위 테스트 프로젝트에서 작동합니다. - Eric J.
  • Assembly.GetEntryAssembly().Location나를 위해 일합니다. 첫 번째 것은file;\ 두 번째 파일은 실행중인 .exe 파일의 절대 경로를 제공합니다. 더하다System.IO.Path.GetDirectoryName()경로 만 가져 오기 - CraftedGaming

55

Windows Forms 프로젝트에서

전체 경로 (파일 이름 포함) :string exePath = Application.ExecutablePath;

경로 전용 :string appPath = Application.StartupPath;


  • Application.StartupPath는 "Working Directory"에 의해 영향을받을 것이다. exe 바로 가기에 설정되어 있거나 다른 앱에서 프로세스가 시작된 경우 & quot; - Pedro77

2

visualstudio 2008에서 다음 코드를 사용할 수 있습니다.

   var _assembly = System.Reflection.Assembly
               .GetExecutingAssembly().GetName().CodeBase;

   var _path = System.IO.Path.GetDirectoryName(_assembly) ;


  • 그것은 실제로 정답이 아닙니다. & quot; file : // foo & quot;와 같은 문자열을 제공합니다. - dyatchenko
  • 또한 그것은 ArgumentException으로 끝날 것입니다.System.IO.Path.GetDirectoryName - benderto

연결된 질문


관련된 질문

최근 질문