2011-12-02 2 views
0

저는 데이터베이스 연결을 위해 엔티티 프레임 워크를 사용하여 C#으로 작성된 .NET Windows 양식 응용 프로그램을 다루고 있습니다. 연결 문자열은 app.config에 기록됩니다. 요점은 두 개의 다른 데이터베이스 사이를 전환하기 위해 응용 프로그램을 수정한다는 것입니다. SQL Server Express 2008 및 SQL compact 4. 응용 프로그램이 SQL 서버에 연결할 수없는 경우 app.config 연결 문자열 섹션을 수정하여 이름을 사용하여 로컬 데이터베이스 (SQL compact 4)에 연결하십시오. 문제는 일부 컴퓨터에서 작업이 예외를 발생시키는 것입니다 : 경로가 응용 프로그램이 설치된 경로 인 거부 된 경로에 대한 액세스입니다. 어떻게하면이 문제를 극복 할 수 있을까요?런타임시 app.config 액세스

답변

1

사용자 모드 응용 프로그램은 사용자 프로필을 제외한 디스크에 쓸 수 없습니다. 즉, c:\Program Files에있는 프로그램은 관리 프로그램이 아니기 때문에 (따라서 Win7/Vista에서 고도를 요구해야 함) 프로그램에 대한 출입 금지가되어야합니다.

관리자로 실행중인 Windows XP 시스템은 정상적으로 작동합니다. 그러나 Vista/7 시스템에서는 예외가 발생하거나 수정 사항이 자동으로 실패 할 수 있습니다. (실제 응용 프로그램 대신 app.config의 사용자 별 복사본으로 리디렉션되기 때문에).

대신 app.config에 다양한 연결 문자열을 저장하고 사용자가 응용 프로그램에서 선택할 수있는 방법을 제공해야합니다. 사용자 설정을 사용하여 마지막으로 사용 된 문자열을 저장할 수 있습니다.