2011-11-19 4 views
4

저는 WPF에서 프로그램을 작성하고 있습니다. 문제는 VS 디자이너가 SQLite 데이터베이스를로드하는 동안 내 프로그램에서 실행되는 코드입니다. 파일이 존재하지 않으면 코드는 빈 데이터베이스를 작성하려고 시도합니다.디자이너가 실행하는 코드의 상대 디렉토리

이 코드는 모두 런타임 중에 완벽하게 작동합니다. 디자이너에서 데이터베이스 파일의 상대 경로는 'c : \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE'와 다릅니다. 프로그램이이 폴더에 쓸 수있는 권한이 없으므로 예외가 발생하여 디자이너를 사용할 수 없습니다.

데이터베이스에 대한 절대 경로를 사용하도록 프로그램을 변경하면 모든 것이 정상적으로 작동합니다. 디자이너는 데이터베이스를 읽고 심지어 데이터를 사용하여 인터페이스를 초기화합니다.

Visual Studio 디자이너가 상대 경로를 계속 사용할 수 있도록 코드를 평가하는 데 사용하는 작업 디렉터리를 변경해야합니까? 또는, 작업 디렉토리보다는 exe 파일의 위치를 ​​얻는 방법도 있습니다. 내가 시도한 모든 것은 VS의 IDE 폴더를 반환합니다.

답변

0

프로젝트 폴더 아래에 있고 프로젝트에 포함되어있는 db 파일입니까? 프로젝트 '원뿔'외부에서 참조 된 파일이있는 것 같습니다. 이 문제는 프로젝트에 파일을 직접 추가하거나 링크를 사용하여 파일을 참조한 다음 해당 복사본이나 링크의 경로를 기반으로하면 사라집니다.

+0

예, 프로젝트에 추가되고 출력 디렉토리로 복사하도록 설정됩니다. Data \ data.s3db에 있습니다. 솔루션을 빌드하면 파일과 폴더가 출력 디렉토리에 복사됩니다. 내 연결 문자열에 다음 데이터 원본 = 데이터 \\ data.s3db 있습니다. 존재하지 않고 지금 데이터베이스 파일을 열 수 없으면 코드를 생성하려고 시도한 코드를 주석 처리했습니다. –

+0

@Android - 참조 경로는 항상 'Data \ data.s3db'입니까? –

관련 문제