여기 Web.config의 설정 변경에 상당한 논의가있다 Using different Web.config in development and production environment
참고 : 다른 질문을하고 있지만 라이브 및 디버그 설정을 전환하는 방법에 대한 제안이 많기 때문에 어쨌든 살펴 보시기 바랍니다. 모든 답변 (IMO)에는 가치가 없습니다. 가장 높은 투표/수락 된 답변.
개인적으로, 나는 방법은 여기에서 설명하고 가장 유연한 생각하고이 파일을 기반으로 구성 변경의 모든 유형에 적용 할 수 있지만이 솔루션 구성에 따라 자동으로 교환 할 수 있습니다 사용
http://www.hanselman.com/blog/ManagingMultipleConfigurationFileEnvironmentsWithPreBuildEvents.aspx
기본적으로 웹 구성을 디스크의 다른 구성으로 바꾸려면 미리 빌드 이벤트를 실행하고 솔루션 구성 이름은 파일 이름에 추가하십시오. 예를 들어, web.config.release, web.config.debug 및 심지어 web.config.neilathome이 있습니다.
다음 부분 클래스를 만들고 자신의 파일에서 내 솔루션 구성간에 변경 내용을 넣어 코드의 조건부 비트에 대해 동일한 동일한 방법을 사용합니다. 예를 들어, sync_timersettings.cs는 업데이트 코드가 웹 서비스를 호출하는 빈도를 정의하는 몇 가지 상수를 포함하는 부분 클래스입니다. 아니면 모든 설정을 app.settings 파일에 넣고 그렇게 할 수 있습니다.
나는 매우 유연한 해결책을 찾았는데, 자바 스크립트와 CSS의 덩어리를 바꿀 수있게 해줬고, 구성간에 변경되는 사항을 자신의 파일에 넣을 시간이 있다면, 디버그 솔루션 구성에서 디버깅을 수행 한 다음 한 번의 클릭으로 릴리스 및 배포로 전환 할 수 있습니다.
하나 더 참고 : 의견에
#if DEBUG
pnlDebugIncludes.visible = true
#else
pnlReleaseIncludes.visible = true
#endif
응답 : 당신은 디버그 솔루션 구성 및 라이브 배포 하나 다른 일이있는 경우
에만 유용합니다. 디버깅이 가능할 때만 DEBUG 기호가 설정되므로 사용자 (나 같은)가 스테이징, 릴리스 및 neilonhislaptop 솔루션 구성을 가지고있을 때 작동하지 않습니다. 해결 방법은 웹 응용 프로그램의 속성 페이지로 이동하여 빌드 탭에서 각 빌드 구성에 대한 조건부 기호를 입력하는 것입니다. IE에서, 당신은 릴리스 탭에 조건부 심볼 박스에 'release'를 놓기위한 설정을해야한다. 그런 다음 다른 빌드 구성에 대해 동일한 작업을 수행하면 빌드 구성에 따라 자동으로 조건부 기호 상자가 변경됩니다. #if 조건 컴파일 지시문이 예상대로 작동합니다.
Bayard는 구성간에 마크 업을 변경하는 방법에 대한 자세한 정보를 요청했습니다. 음 은 전체 .aspx 페이지를 스왑하는 데 사용할 수 있습니다. home.aspx.release 및 home.aspx.debug가 있지만 각 파일에서 많은 마크 업을 반복해야한다는 것을 의미합니다. 내 솔루션은 내 응용 프로그램에 부분 클래스를 추가하는 것입니다. 예를 들어, 내 'ViewImage'페이지가있는 다음 클래스 정의가 : 나도 같은 서명을 몇 가지 클래스 파일을 생성하고 'ViewImage_titleset.cs.debug'와 'ViewImage_titleset.cs 그 이름 ..so
public partial class ViewImage : System.Web.UI.Page
'.staging :
namespace Website
{
public partial class ViewImage : System.Web.UI.Page
{
public void SetTitle()
{
Page.Title = "Running in debug mode";
}
}
}
및 ViewImage의 페이지로드 이벤트에서 setTitle이라는를 ..calling
namespace Website
{
public partial class ViewImage : System.Web.UI.Page
{
public void SetTitle()
{
Page.Title = "Running in staging mode";
}
}
}
하는 구성이 위치에 구축에 따라 제목을 변경합니다. 프로그래밍 방식으로 페이지를 변경하는 경우에만 작동합니다.
이와 같은 코드를 변경하려면 위의 조건부 컴파일 방법을 사용하고 이미지 또는 web.configs와 같은 코드가 아닌 파일을 변경하는 파일 스왑 방법을 예약하는 것이 좋습니다. 게시 할 때 배포 할 대체 파일을 설정하지 않았는지 확인하십시오.
. 유이 압축의 .Net 포트 - 고마워, 내 자신의 js 파일을 연결하는 이런 식으로 찾고 있었어요. –
OMG - YUI의 .NET 포트를 사용했던 그 사람을 알고 있습니다. 작은 세계, 등등. –