2012-01-04 8 views
0

우선, 웹 응용 프로그램 프로젝트를 사용하지 않고 웹 사이트 유형의 프로젝트를 사용하고 있습니다.Web.config 변환이 작동하지 않습니다.

우리는 Dev (개발 용), Demo (테스트 용) 및 Live (최종 출시 용)의 3 가지 빌드 구성을 가지고 있습니다.

우리는 두 개의 파일을 (그러나 결국은 4 수 있습니다)되는 :

  • 의 Web.config
  • Web.Dev.config

처음에서 미리보기 :

<?xml version="1.0"?> 
<configuration> 
    <connectionStrings> 
    <add name="SomeConnectionString" connectionString="oldConnStr" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 
    <system.web> 
    <compilation targetFramework="4.0" debug="false"> 
     <assemblies> 
     <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
     </assemblies> 
    </compilation> 
    </system.web> 
</configuration> 

그리고이 변환이다

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <connectionStrings> 
    <add name="SomeConnectionString" connectionString="newConnString" providerName="System.Data.SqlClient" xdt:Transform="Replace" xdt:Locator="Match(name)" /> 
    </connectionStrings> 
    <system.web> 
    <compilation debug="true" xdt:Transform="SetAttributes(debug)" /> 
    </system.web> 
</configuration> 

그것은 전혀 doesn'work 아니하며의 Web.config이 되는가 '확장', 스크린 샷 :

Web.config isn't expandable
아이콘은 팀 파운데이션 서버에서입니다

사람이 방법을 알고 있나요 이거 만들어?

+0

어떻게 될 것으로 예상됩니까? 문제를 해결하기 위해 무엇을 시도 했습니까? – Brissles

+0

필자는 기본 빌드 구성 ('Web.config's에서'Debug' 및'Release')을 사용하고, 퍼블리싱하고, 인터넷 검색을 많이 시도했습니다. – Aidiakapi

답변

2

웹 사이트 프로젝트에서이 작업을 수행 할 수 없음을 알게되었습니다. .csproj 파일이 필요하며 웹 사이트에는 .csproj 파일이 없습니다.

1

web.config 변환과 일치하는 구성 인스턴스가 필요합니다. 예를 들어 Web.Dev.config를 컴파일하고 변환하려면 (웹 배포 도중) 'Dev'구성에서 프로젝트를 컴파일해야합니다.

Dev 구성이 정의되어 있지 않은 경우 (기본적으로 새 VS 프로젝트를 시작할 때 디버그 및 릴리스 구성이 표시됨) 사용 가능한 모든 구성이 나열된 드롭 다운 상자를 클릭 할 수 있습니다. 일반적으로 Visual Studio에서 녹색 '재생'(디버깅 시작) 버튼 옆에이 버튼이 있습니다. 'Configuration Manager'옵션을 선택한 다음 선택한 프로젝트에 대해 구성 드롭 다운을 선택하고 선택하십시오. 그런 다음 Dev라는 구성을 만들고 필요한 경우 기존 구성에서 설정을 복사 할 수 있습니다. 이 작업이 완료되면 프로젝트 트리를 새로 고쳐야합니다.

VS 빌드 (예 : Ctrl + Shift + B) 빌드의 표준 중에는 trasnformation이 적용되지 않습니다. 일반적으로 응용 프로그램이 Web Deploy 또는 일종의 배포 도구를 통해 릴리스 될 때 적용됩니다. 적용되는 변환은 선택한 빌드 구성에 따라 달라집니다. 나는. 'Dev'구성에 배포하면 web.dev.config 변형이 적용됩니다.

+0

내가 처음 게시 한 내용은 'Dev','Demo' 및'Live'의 세 가지 빌드 구성이 있다는 것입니다. 특수 빌드에서 발생하는 변환 (게시를 포함한다고 가정)에 대해서는 지금 시도해 보겠습니다. – Aidiakapi

+0

해당 빌드 구성에 게시 할 때 변환이 발생하지 않습니다. – Aidiakapi

+0

흥미 롭다 ... 내가 가지고있는 유일한 경험은 특별히 TFS 빌드와 관련이있다. 새 web.dev.config가 TFS 지점에 체크인되어 있습니까? –

관련 문제