2017-09-12 1 views
0

그래서 Microsoft Visual Studio 2012를 사용하여 C# 콘솔 응용 프로그램을 완성했습니다. 프로젝트 폴더 내에 로컬 파일이 있습니다. 내 코드 내에서이 파일의 상대 경로를 문자열 변수에 할당하여 로그 쓰기 작업을 수행했습니다. 이 파일은 첫 번째 빌드/실행 중에 생성 된 다음 추가 실행 중에 정보가 추가되었습니다.릴리스 모드에서 빌드를 실행하는 동안 프로젝트 파일의 상대 경로가 c : windows로 자동 해석되는 이유는 무엇입니까?

string rpath = "..\\LogFile2.txt"; 

이 프로젝트를 디버그 모드로 빌드하고 실행했습니다. 이 실행하는 동안 RPATH 올바르게 릴리스 모드에서이 프로젝트를 구축 한 후 Windows 작업 스케줄러에서 특정 시간에 실행되도록 .exe 파일을 예약하는 동안, 나는 런타임을 얻을

c:\project_app_folder\bin\LogFile2.txt 

그러나

로 식별됩니다 오류가 발생했습니다

경로 'C : \ local \ pic'의 일부를 찾을 수 없습니다.

어떻게 해결할 수 있습니까? 임시 폴더 또는 런타임에 생성 된 텍스트 파일을 프로젝트 폴더/패키지에 포함 시키시겠습니까?

절대 경로를 지정할 수 없습니다.이 코드는 패키지되어야하고 다른 사용자에게 전송되어야하며 사용자는 자신이 적합하다고 생각하는 위치에 프로그램을 저장하기로 선택할 수 있습니다.

+1

"릴리스 모드"라고 생각하지 않습니다. 문제의 원인입니다. 예약 된 작업으로 실행하고 있다고 생각합니다. C : \ Windows \ System32 '. –

+0

이 문제는 릴리스 모드로 인한 것이 아니므로 스케줄러가 프로그램을 호출 할 때 작업 디렉토리가 @Damien_The_Unbeliever와 다를 수 있습니다. 시작 옵션을 사용하여 디렉토리를 지정할 수 있습니다 – Hybridzz

답변

0

이 문제는 릴리스 모드로 인해 스케줄러가 프로그램을 호출 할 때 작업 디렉토리가 @Damien_The_Unbeliever와 다를 때 발생합니다. 액션을 릴리스 디렉토리로 지정할 때 "시작"옵션을 사용할 수 있습니다.

"시작"은 주로 실행할 작업에 상대 경로 이있는 경우 사용할 디렉토리를 확인하는 것입니다.

관련 문제