일반적으로 작은 파일을 포함할 수 있지만, 항상 더 나은 오버라이드합니다 매우 비표준 환경 설정을 통해 개발자.
, 는 구성 코드 버전 이 합니다. 우리는 우리의 기본 구성 파일을 사용자 이름. 이 두 UNIX / Mac 과 Windows 액세스하려면 user& # 39 에 로그인 이름과 deltamove 이 프로젝트에 대한 고유하도록 틀렸다니까 좋았소 , 버전 관리 할 수도 있습니다 이 환경에서 오버라이드합니다 확장하지만 전지전능하시니라
또한 others& # 39 검사할 수 있습니다. 구성, 도울 수 있는 플랫폼 구축 및 진단하십시오 문제.
이 솔루션을 사용할 수 있지만, 우리는 우리가 한 개만 구성파일입니다 (web.config/app.config) 설정 파일에 포함된 스페셜 섹션으로 추가하기에서는 모든 환경에 대해.
There is a 로컬이며 개발, QA, 그런 환경에 관련된 각 운영 단면에는 redboot*용 구성내역 키를 lionbridge 의 구성 파일 (s).
이 모든 일을 할 수 있는 어떤 어셈블리인 release. 원하는거요 referenced 스스트런비론망 우리의 모든 응용 프로그램이 운영 환경을 알리는 (및 웹폼 윈포름스) 에 있다.
Xxx. 마치네스콘피그 주어진 환경 조립품을 단 한 줄도 판독합니다 얻은 정보를 알리는 it 기반이 되는 시스템을 개발, QA, etc. 이 모든 항목인지 워크스테이션과 서버에 있는 우리.
ᄋ "이번 도움이 됩니다.
+1 의 템플리트를 외곽진입.
그러나 이 질문은, 분산 교체품 깃 (git) 는 태그 스프링 수 있는 점을 감안, 사용자 정의 보관됩니다 비공개 테스트 분기로의:
A---B---C---D--- <- mainline (public)
\ \
B'------D'--- <- testing (private)
이 체계, 주류, 일반, " template" 포함되어 있습니다. 구성 파일 되기 위해 필요한 최소한의 조정 기능.
이제 그들의 heart& # 39 의 개발자 / 면변형하기 수 있다는 설정 파일 이러한 변경, 단 하나의 개인 컨텐츠를 커밋합니다 로칼에서 테스트 분기로의 (예를 들면 B& # 39. = B + 사용자 정의). 주류 때마다 그들은 이를 손쉽게 병합해야 것으로, 테스트, 이로 인해 같은 커밋한 병합해야 D& # 39. (= D + 병합되었습니다 버전니다 B& # 39 의 사용자 정의).
이 때, 정말 " template" 구성표가 빛을 발한다. 구성 파일 업데이트되도록: 양측의 변경 사항을 얻을 수 있으며, 매우 병합되었습니다 것으로 보인다. 충돌 결과 호환되지 않는 경우 (또는 테스트 실패) 로!
저는 항상 모든 버전의 구성 파일을 소스 컨트롤이거나, 계속 같은 폴더에 웹스콘피그 절실해졌습니다.
예를 들어
web.config
web.qa.config
web.staging.config
web.production.config
이 때문에 명명 규칙 (또는 반대로 웹스콘피고드프로두스션 프로두스션.웹스콘피그) 이 더 좋아요
기본 구성 파일 시스템 응용 프로그램을 실행할 수 있는 등 자체적으로 로칼에서 구성해야 합니다.
가장 중요한 것은 이러한 파일 포맷 등 모든 부문에서 약 100%, 심지어 동일한 합니다. # 39 한 공간에 대해 또 다른 버전과 탭들 사용할 수 있습니다, t shouldn& 들여쓰기. Diff 툴을 실행할 수 있어야 합니다 그 사이에 어떤 차이점이 파일에 대해 정확히 볼 수 있습니다. 난 사용을 선호하지만 윈메르게 디프링 위한 파일.
이 과정에서 생성된 구축하십시오 선행돼야 할 경우 이진용으로 웹스콘피그 덮어씁니다 함께 있는 작업에 적합한 환경을 구성 파일. 압축 파일은 비사양 관련 파일을 삭제할 경우, 그 위로 구축할 수 있는 합니다.
내 생각엔 이 낮춰줍니다 사이의 값을 때 통증을 유발할 수 있는 정도를 복제에서는 구성 파일을 새로 추가 / 특성.
나는 오랫동안 정확히 어떤 브스우드 수행됨 수행됨 있다. 난 계속 베발데비스콘피그 복제본입니다 웹스테스트리콘피그 웹스prod.콘피그 등을 소스, 제어, 다음, 내 이름 아래에 있을 때마다 다양한 환경 구축 등 it 시스템 구축 / 강화하십시오. 확보하십시오 일정 금액 (특히 모두 asp.net 파일 간의 중복용으로 있으나, 일반적으로는 작동하잖아 참 좋았댄다 그 안에 있다) 여러분은 모두 기억하고 있는지 확인하기 위해 팀에 대한 모든 파일을 변경할 때 업데이트하려면 .
그나저나, .config" " 유지하는 걸 좋아해요. 결국 같은 확장명은 도왔으매 파일 연관입니다 얻지 못한 셈이다.
지금처럼 지역 개발자 버전의 구성 파일, 난 항상 내 베스트중에 시도하시겠습니까 장려하기 위해 현지 설정을 동일하게 사용할 수 있도록 최대한 자신의 버전을 필요가 없습니다. # 39 이 doesn&, t 인데, 사람들은 일반적으로 누구나 항상 작동합니까 바꾸시겠습니까 로칼에서 가서 거기서 그냥 필요에 따라 # 39, 또는 기타 다른 it& 너무 고통스러운 일은 아닙니다.
우리가 사용하는 파일 버전 관리, 다음 단계는 구성용 포틀릿이 검사됩니다 인되며 lionbridge 오토메이티드 제작식 복귀시킴 템플릿 파일의 특정 항목을 통해 환경 관련 꾸미기야. 또한 별도의 XML 파일 버전 아래에 있는 환경 관련 설정이면 저장됩니까 제어입니다.
이 모든 개발자 버전을 사용할 수 있을 정도로, 일반 바닐라 체크인된 app/web.config 제공하십시오 일반 시스템 및 변경 사항 등 모든 새로운 설정을 통해 최신임 보관 가능하다. 필요한 경우 특정 설정은 설정, 체크인합니다 이러한 설정을 사용하여 파일을 별도로 개발 / 테스트 / 제작 등 가테킬러 함께 있다고 하지만, 제가 가는 일종의 명명 규칙, 일반적으로 " web.prod.config" 변경하십시오 아니라,, 입니다.
그래서 내가 어떻게 here& # 39, s do it. 그러나 이는 일반적으로 노데지스 위한 프로젝트 및 언어 뿐만 아니라, 다른 프레임워크와도 작동하잖아 생쥐라.
내가 하는 일을 만들 수 있습니다 '와' 디렉터리입니다 루트에 프로젝트, 해당 디렉토리에 있는 모든 환경에 대해 여러 개의 파일을 렉시한테서 (일부는 별도의 파일로 # 39 번, 환경 등 각 developer& s well) 에 있는 모든 추적됨 소스 제어입니다. 실제 파일 이름이 '구성' 이 제기되고 있는 코드에서는 루트에 프로젝트. 이 밖에 없는 파일을 추적됨. 이 때문에 마치
root
|
|- config (not tracked)
|
|- configs/ (all tracked)
|- development
|- staging
|- live
|- James
그는 누군가 검사 아웃해야 복사됩니다 프로젝트 파일 및 설정 파일을 자유롭게 사용할 수 있는 거야 '구성' 비 추적 않노라그분이 편집하십시오 속박하였으니 그가 전에 그는 이러한 변화를 바라는 하지만 또 다른 환경 커밋한 필요한 파일을 복사할 수 있습니다.
비 추적 및 ideastorm. 서버에 파일 복사 (또는 참조) 이 될 수 있는 파일 추적됨 단순히 해당 환경. Js 파일을 가지고 있는 하는 경우 단순히 1 줄 수 있습니다.
처음에는 이 흐름 좀 복잡하게 수 있지만 큰 효과를 얻을 수 있다.
우리는 우리의 프로젝트에 대한 구성 저장됩니까 사용하여 파일을 < hostname>; 그럼 우리 접두어입니다 빌드 시스템을 기반으로 현재 해당 구성 # 39 을 꺼내 system& hostname. 이 만족스럽게 저희에게 수 있게 되어, 비교적 작은 팀 구성 # 39 의 파일을 다룰 때 추가 / 변경 사항을 다른 people& 적용하십시오 경우, 새로운 구성 항목. 분명히 이 말해둘꼐요 doesn& 무제한 확장할 수 있는 오픈 소스 프로젝트 # 39, t 개발자 수에.
우리는 두 가지 문제는 여기에 있습니다.
모든 것이 쉽게 사용할 수 있는 두 개발자는 정의마스터 config 파일에서 사용하는 경우, 원치 않은 체크인합니다 변경하십시오 동일한 파일의 데보라베망 환경.
On the other side 경우 별도의 구성파일입니다 포함되어 있는 것은 아주 쉽게 잊을 수 없는 새로운 설정을 통해 설치자는 추가할 수 있다 (주석), 즉 항목이없습니다 나가버렷 동기화되도록 주석이 이 데보라베망 configuring 절실해졌습니다.
3rd - 질문 / 답변 좁히어 가 문제를 다루지 않습니다. 어떻게 변경 할 수 있는 고객은 병합합니다 데이터베이스에구성원을 설정파일에서 새로운 버전의 소프트웨어를 설치할 때 가능 너회의
>. 난 아직 지켜보리니 좋은 솔루션뀉뀉뀉뀉 >. 그러나 잘 작동하는 모든 경우에 >. I 보았으나 부분 솔루션 >. (통합할 수 있는 다른 >. 줄일 수 있는 조합 필요) >. 문제는 많이유.
필요 없는 경우 고객이 사용할 수 있도록 매핑이라는 변경하십시오 Fluent 네이베르나트 (또는 그 밖의) 에 구성내역 이동합니까 코드.
거짓하였으니 데펜시 대한 사출 설정되었습니다.
분할이 가능한 경우, 예를 들어 어떤 Log4Net 구성려면 설정파일에서 사용하고 별도의 파일 로그.
타냐한테 간에 항목을 반복하십시오 많은 구성 파일을 같은 컴퓨터에 설치되어 있는 경우, 예를 들어, 4 개의 웹 응용 프로그램을 모두 가지고 있는 웹스콘피그 파일에서 전반적인 설정파일에서 애플리케이션마다 가리킵니다.
(상대 경로를 사용할 수 있도록 할 수 없는 것이다, 기본적으로 변경하십시오 웹스콘피그 파일)
이 일을 할 수 있는 Xml 에 의해 기본값과 때 설정한 후 주석을 구성 파일에서 구축하십시오 완료되어도. 또는 이미 삭제된 단면에는 만드는 과정의 일부로 설치자는.
E. g first look for "database_ianr" (여기서 ianr is my sername 또는 시스템 이름) 의 경우 런타임에 설정파일에서 없으면 "데이터베이스" 찾습니다.
2 차 투명지에 ". (예: sqlserver" 제거-oracle 또는 -; 모두 볼 수 있도록 신속한 개발자를 위한 데이터베이스 시스템.
이는 물론 다른 구성값 수행할 수 있다.
그 뒤 모든 값을 스트라이프된 아웃해야 끝나는 "_userName 수 있다" 를 출시하기 전에 구성파일입니다.
>. 그러나 결국 지정하십시오. 너회가 는 >. "설정파일에서 소유자" 라고 >. 는 관리를 통한 환경 보호 >. 위와 같이 또는 구성파일입니다 (s) >. 그렇지 않으면. He/She 할 필요가 있다 >. 고객에 대한 페이싱 diff >. 전에 항상 설정파일에서 >. 화물이야.
내가 같은 문제와 해결책을 찾으면 내가 겪은 일이다. 내가 처음 추가되든지 모든 파일을 중앙 저장소 (또한 개발자 수준들과).
만일 한 개발자 패치합니다 의 파일을 리포지토리를 구성 역시 개발자가 할 수 있다. 깃 (git) 이 파일을 변경할 때, 이러한 변경 내용을 알고 안 됩니다. 그러나 이 리포지토리를 임상의들의 로칼에서 이쪽요 변경 / 커밋한 푸시할 수 없습니다.
내가 이 git 명령을 사용하여 해결했다. '-' 업데이트 인덱스화할 solaris. 변경되지 않은. I made a bat 에 있는 파일을 실행할 수 있는 그 파일을 포함하는 프레부일드 사업 변경으로 의해 무시하시겠습니까 깃 (git). 다음은 코드 I put in the bat 파일:
IF NOT EXIST %2%\.git GOTO NOGIT
set fileName=%1
set fileName=%fileName:\=/%
for /f "useback tokens=*" %%a in ('%fileName%') do set fileName=%%~a
set "gitUpdate=git update-index --assume-unchanged"
set parameter= "%gitUpdate% %fileName%"
echo %parameter% as parameter for git
"C:\Program Files (x86)\Git\bin\sh.exe" --login -i -c %parameter%
echo Make FIleBehaveLikeUnchangedForGit Done.
GOTO END
:NOGIT
echo no git here.
echo %2%
:END
난 내 프레부일드 전화를 했다 "며" 파일, 예를 들면 다음과 같습니다.
call "$(ProjectDir)\..\..\MakeFileBehaveLikeUnchangedForGit.bat" "$(ProjectDir)Web.config.developer" "$(SolutionDir)"
그래서 내가 찾은 파일에 대한 올바른 구성 파일을 web.config/app.config. 복사됩니다 배트 난 또 이 파일의 프레부일드 호출하십시오 했다. 이 파일은 코드의 했다.
@echo off
echo Comparing two files: %1 with %2
if not exist %1 goto File1NotFound
if not exist %2 goto File2NotFound
fc %1 %2
if %ERRORLEVEL%==0 GOTO NoCopy
echo Files are not the same. Copying %1 over %2
copy %1 %2 /y & goto END
:NoCopy
echo Files are the same. Did nothing
goto END
:File1NotFound
echo %1 not found.
goto END
:File2NotFound
copy %1 %2 /y
goto END
:END
echo Done.
난 내 프레부일드 전화를 했다 "며" 파일, 예를 들면 다음과 같습니다.
call "$(ProjectDir)\..\..\copyifnewer.bat" "$(ProjectDir)web.config.$(ConfigurationName)" "$(ProjectDir)web.config