app.config에 내 데이터베이스 경로 (일부 XML 파일이있는 폴더)를 저장합니다. 시작할 때 경로가 있는지 확인합니다. 존재하지 않으면 경로를 기본 경로로 설정하려고합니다. 코드는 다음과 같습니다System.AppDomain.CurrentDomain.BaseDirectory가 다른 결과를 반환하는 이유는 무엇입니까?
public void CheckAndRepairSettings()
{
/* Check Paths */
if(GetDatabasePath() == null)
SetDatabasePath(System.AppDomain.CurrentDomain.BaseDirectory + "DataBase");
}
GetDatabasePath()
경로가의 app.config를 형성 읽고 SetDatabasePath()
은의 app.config의 경로를 기록합니다. 이 메소드는 잘 작동합니다.
내 약속은 System.AppDomain.CurrentDomain.BaseDirectory
입니다. 내 응용 프로그램 디버그 모드에서 실행하면 "F : \ Office \ Projekte_Software \ ServiceTool \ _Work \ ServiceSoftware \ ServiceSoftware \ bin \ Debug \"
일부 단위 테스트에 추가로 NUnit을 사용합니다. 내가 디버그 모드에서 NUnit를 실행하면 내가 얻을 : : NUnit과의 경로에서
더 후행 백 슬래시가 없다 "\" "F \ 사무소 \ Projekte_Software \ ServiceTool \ _Work \ ServiceSoftware \ ServiceSoftware.UnitTests 빈 \ 디버그 \" 디버그 모드, 그래서 내 기존 경로가 내 CheckAndRepairSettings()
경로 문자열을 연결할 때 얻을.
왜 이렇게 다른 행동을합니까? 하나가 다른 하나를 삭감하는 것은 아마 어떻게 관련이없는 엔딩 포함 왜
아니고 대답하지만 경로를 만드는, 그래서 Path.Combine (경로 1, 경로 2)을 사용해야합니다. 이렇게하면 백 슬래시 문제가 처리되어 오류를 방지 할 수 있습니다. – Maarten