2014-04-09 4 views
3

동일한 솔루션에서 일련의 MVC 프로젝트 (20+ 이상)가 있습니다. 그들 중 일부는 많은 수의 앱 설정에 대해 동일한 값을 공유해야합니다.외부 AppSettings 파일이 링크 된 파일에 대해 작동하지 않습니다.

유지 관리를 쉽게하기 위해 부모 디렉토리의 하나의 공통된 위치 (예 : "appSettings.config")에서이 파일을 유지 관리하고 파일을 appSettings 태그의 파일 속성을 통해 web.config에 가져오고 싶습니다. .

파일을 각 프로젝트에 가져 오려면 Add > Existing Item...을 사용할 수 있으며이 방법은 모두 사용할 수 있지만 기존 항목을 추가 할 때 Add As Link을 선택하면 안됩니다. add-as-link를 선택하지 않으면 파일이 복사되고 두 파일 사이의 값이 동기화되지 않아 내 용도가 무효화됩니다.

연결된 appSettings.config 파일을 사용하려면이 방법을 사용할 수 있습니까?

답변

5

web.config에서 appSettings 섹션의 내용을 별도의 파일로 지정할 수 있습니다. 이 설정을 사용하여 공유 설정을 가져옵니다. 이와 같이 :

<appSettings file="..\..\config\appSettings.config" /> 

지정한 파일 경로는 web.config의 위치를 ​​기준으로합니다. 위에서 볼 수 있듯이 .. \ notation을 사용하여 웹 루트 외부의 경로를 참조 할 수 있습니다. 즉, 공유 설정 파일을 편리하게 유지할 수 있습니다.

자세한 내용은 http://msdn.microsoft.com/en-us/library/aa903313(v=vs.71).aspx을 참조하십시오.

+0

내가 이것을 시도하면 런타임 오류가 발생합니다 :'파서 오류 메시지 : 루트 요소가 없습니다 .' 그리고 Resharper는 경고 메시지 : "경로가 웹 사이트 밖에 있습니다."나는 경로를 명확히 지정했습니다. 올바르게 -하지만 내가 잘못된 경로를 지정하면 Resharper는 "path not found"메시지를 나에게 많이 던졌습니다. – Faust

+0

테스트 해봤는데 Resharper 경고에도 불구하고 작동합니다. 외부 파일의 내용이 올바른 형식인지 확인하십시오. 특히 루트 요소는''보다는 ""(자세한 내용은 위의 Microsoft 링크 참조). –

0

하나의 파일에서 앱 설정을 중앙 집중화하고 많은 프로젝트에서 이러한 키 값 쌍을 사용하려면 appSettings.config라는 새로운 파일을 솔루션/저장소의 루트에 추가 한 다음 모든 web.config 파일을 업데이트하기 만하면됩니다 web.config 프로젝트 루트 디렉토리를 기준으로 새 위치를 참조합니다. 그것은 모두의 위치에 따라 달라집니다

<appSettings file="../../../appSettings.config" /> 

: 두 번째 프로젝트에 webconfig 업데이트해야 할 수도 있습니다

<appSettings file="../appSettings.config" /> 

반면 : 예를 들면, 하나 개의 프로젝트에 대한 웹 설정이 업데이트 될 수 있습니다 프로젝트의 위치를 ​​기준으로 파일. 위의 시나리오에서 2 개의 프로젝트가 하나의 솔루션에 포함되어 있습니다. 하나의 appSettings.config 파일을 사용하여 X 개의 프로젝트로 만들 수 있습니다.

아래 Microsoft의 링크를 참조하십시오. https://msdn.microsoft.com/en-us/library/aa903313(v=vs.71).aspx