Web.Debug.config 및 Web.Release.Config 파일의 용도는 무엇입니까?


111

방금 Visual Studio 2010 및 MVC 2.0으로 업그레이드했는데 Web.config에 두 개의 추가 파일이 첨부되어 있음을 알았습니다. 이러한 파일은 디버그 및 릴리스 특정 설정을 지정하는 데 사용되므로 기본 Web.config를 복잡하게 만들지 않습니까?

디버그 및 릴리스 Web.configs에 각각 로컬 및 원격 파일이있는 경우 루트 Web.config 파일에 연결 문자열을 배치하는 것이 합리적입니까?

감사!

답변:


97

Visual Studio 2010의 새로운 Web.config 변환 기능입니다. 자세한 내용은 여기를 참조하십시오 .


편집하다:

이 파일은 디버그 및 릴리스 특정 설정을 지정하는 데 사용되므로 기본 web.config를 복잡하게 만들지 않습니까?

3 개의 파일로 제한되지 않고 (이론적으로) 환경이있는만큼 많은 파일을 가질 수 있습니다. "최상위"Web.config는 웹 구성의 템플릿을 제공합니다. 그 아래의 파일은 해당 환경에 특정한 대체 값을 제공합니다 (예 : 로컬 / 스테이지 / 테스트 / 무엇이든에 대해 다른 연결 문자열이있는 경우).

디버그 및 릴리스 web.configs에 각각 로컬 및 원격 파일이있는 경우 루트 web.config 파일에 연결 문자열을 배치하는 것이 합리적입니까?

환경간에 변경되지 않는 경우에만 의미가 있습니다. 귀하의 경우에는 그렇게 들리는 것처럼 들리지만 귀하의 경우에는 아니요, Web.config에 남겨 두는 것이 합리적이지 않습니다.


12
이 기능은 4 년 후에도 반쯤 구워졌습니다! Azure / Publishing 패키지에 배포 할 때만 작동합니다. 흥미로운 스레드가 있습니다 : forums.asp.net/t/1532038.aspx
Nick

12

Web.config 변환 파일입니다. Visual Studio를 사용한 ASP.NET 웹 배포 에서 : Web.config 파일 변환 :

Web.config 파일 설정 변경 프로세스를 자동화하는 방법에는 Web.config 변환 및 웹 배포 매개 변수의 두 가지가 있습니다. Web.config 변환 파일에는 Web.config 파일이 배포 될 때 변경하는 방법을 지정하는 XML 태그가 포함되어 있습니다. 특정 빌드 구성 및 특정 게시 프로필에 대해 다른 변경 사항을 지정할 수 있습니다. 기본 빌드 구성은 디버그 및 릴리스이며 사용자 지정 빌드 구성을 만들 수 있습니다. 게시 프로필은 일반적으로 대상 환경에 해당합니다.


1

누군가가 관심이 있다면 여기에 환경별로 동적 연결 문자열을 갖도록 작성한 내용이 있습니다. 연결 문자열 변경에 대해 걱정할 필요없이 모든 환경 (Dev, Test, Pre-Prod, Prod ...)에 코드를 배포하고 싶었습니다. Asp.Net MVC 4로이 작업을 수행하는 좋은 방법을 찾을 수 없었기 때문에 환경별로 속성 파일에 의존하는 나만의 방법을 생각해 냈습니다.

더 나은 솔루션이있을 수 있습니다. 저는 Wicket / Java 배경에서 왔으며 최근 MVC 4로 개발을 시작했습니다. 따라서 더 나은 솔루션이 존재할 수 있습니다. 그러나 여기에 동적 연결 문자열에 대한 내 질문과 대답에 대한 링크가 있습니다.

Asp.net MVC 4 동적 연결 문자열


-3

그것은 VS에서 오랫동안 필요한 것이 었습니다. 불행히도 구현에 문제가있는 것 같습니다. 예를 들어 다음 시나리오 (VS.2010 Ultimate, 모든 SP)를 고려하십시오.

Web.Config

  • connectionStrings 섹션 없음
  • 정회원 사용자 / 역할 등 connectionStringName = "test"를 사용한 공급자 구성

Web.Release.Config

  • 멤버십 구성 없음 (기본 web.config에 이미 지정됨)
  • "test"라는 CS를 포함하는 connectionStrings 섹션

Web.Debug.Config

  • 멤버십 구성 없음 (기본 web.config에 이미 지정됨)
  • "test"라는 CS를 포함하는 connectionStrings 섹션

응용 프로그램을 실행하면 다음 오류가 발생합니다.

응용 프로그램 구성에서 연결 이름 'test'를 찾을 수 없거나 연결 문자열이 비어 있습니다.

즉, 연결 문자열 요소가 릴리스 / 디버그 디자이너 파일 에 있고 기본 (Web.config) 파일의 구성 요소에서 사용 되기 때문에 해결할 수 없습니다.


5
공정하게 말하면, test디버그 및 릴리스 구성 파일 모두에 이름이 지정된 연결 문자열이있는 경우 해당 섹션이 템플릿으로 지정된 기본 web.config에 있어야합니다. 그대로, 템플릿이 해결해야하는 코드를 복제하고 있습니다.
R0MANARMY

3
-1 :이 아주 오래된 게시물은 웹 구성 변환을 사용하는 방법에 대한 완전한 오해입니다. 1 이것은 실제로 답변이 아니며 (잘못된 불만) 2 여기에 암시 된 것처럼 요소의 단순한 병합이 아닙니다. 명시적인 xslt바꾸기 명령 이 있어야 합니다. 그럼 이러한 변환 파일에 대한 혼란에 추가 뭔가를 5 upvotes을 받고에서 수행 :
사라 코딩
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.