2013-10-23 1 views
0

검색 및 검색하여 특정 문제에 대한 해결책을 찾을 수 없습니다. 두 개 이상의 클라이언트에 사용할 콘솔 앱을 업데이트 중입니다. 최소한 db에 정보를 저장하는 것 이상으로 설정 파일에 클라이언트 정보를 저장하기로했습니다. 각 클라이언트에는 고유 한 구성 파일이 있습니다. "알 수없는"위치에서/config 파일을로드하는 방법을 알아야합니다. 내가 발견 한 모든 예제는 파일의 경로에 넣기를 원합니다. 내 컴퓨터를 사용하는 동안 경로를 알 수 있지만 다른 서버로 푸시되면 파일 경로가 변경됩니다."알 수없는"위치에서 사용자 선택을 기반으로 구성 파일을로드하는 방법

파일의 경로를 모른 채 모든 클라이언트에 대한 구성 파일을로드하려면 어떻게해야합니까?

EDIT : 콘솔 앱은 하나의 서버에서만 실행되지만 다른 클라이언트 웹 사이트로 이동하여 사이트를 크롤링하는 데 사용됩니다. 이것이 각 클라이언트가 자신의 구성 파일을 가지고있는 이유입니다. 여기에는 사이트를 만들고 사용하는 데 필요한 정보가 들어 있습니다. 우리는 타이머에 각 클라이언트를 실행하는 앱을위한 작업을 설정했습니다.

+0

두 제안 : 1. 당신은 DB를 가지고있다. 각 사용자의 경로를 설정 파일에 저장할 수 있습니다. 2. 레지스트리에 경로를 쓸 수 있습니다 (모든 사용자가 동일한 위치). – etaiso

답변

0

모든 것이 bin 폴더에서 읽혀지기 때문에 속성을 살펴본 후 Do Not Copy (복사 안 함)에서 Copy to Output Directory (출력 디렉터리로 복사)로 항상 변경되었습니다. 이제 bin 폴더에 config 파일이 있습니다. 그리고 this question에 대한 대답은 나를 설정 파일을 읽는 방향으로 놓았습니다.

0

include 문을 사용하여 다른 파일에서 사용된다는 점을 염두에두고 모든 코드를 작성하면 어떨까요? 그래서 모든 파일은 래퍼 파일에 도달 할 때까지 다른 파일에서 사용됩니다.이 파일은 구성 파일의 위치를 ​​정의하는 용도로만 사용됩니다. 응용 프로그램은 항상 그러한 랩퍼 파일을 통해 호출됩니다. 이 랩퍼 파일은 구성 파일의 위치를 ​​판별하고 포함 된 파일에서 사용할 수 있도록 필요한 모든 작업을 수행합니다. 사용자를 알고 있으면 테이블에서 검색 할 수 있습니다. 요점은 코드를 한 환경에서 다른 환경으로 이동할 때 래퍼 파일이 움직이지 않는다는 것입니다. 우리가 한 환경에서 다른 환경으로 이동할 때마다 코드를 편집하고 싶지 않기 때문에 이것은 유용한 기능이라고 생각합니다. 이 접근법의 또 다른 이점은 매우 제한된 환경에서도 모든 환경에 적용된다는 것입니다. 예를 들어 코드를 실험하기 위해 샌드 박스로 프로그래머에게 폴더 만 제공한다고 가정 해 보겠습니다. 이 프로그래머는/bin 또는/etc 디렉토리에 액세스 할 수 없습니다. 반대로, 제안 된 접근 방식은 프로그래머가 자신의 로컬 래퍼 파일에 원하는 모든 설정 파일을 설정할 수 있기 때문에이 경우에는 정상적으로 작동합니다. 이 문제는 여기에 설명되어 있습니다 How to organize code so that we can move and update it without having to edit the location of the configuration file?