2012-08-05 2 views
3

나는 slowcheetah와 함께 뭔가를 놓친 것 같아요. 새로운 asp.net mvc3 응용 프로그램을 만들었습니다. web.config에 appsetting을 기본값으로 추가했습니다. 그런 다음 각각의 디버그 및 릴리스 구성 파일에 하나의 변환을 추가했습니다. 이 값을 읽는보기도 만들었습니다. 변환을 미리 볼 때 변환이 제대로 작동합니다. 필자는 릴리스 모드에서 프로젝트를 실행하면 프로젝트가 릴리스 변환에서 app 설정으로 읽히고 디버그 모드로 프로젝트를 실행하면 디버그 구성에서 app 설정으로 읽게됩니다. 여기 slowcheetah 새로운 asp.net mvc 변환 작동하지 않는다

<?xml version="1.0"?> 

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 

    <appSettings> 
    <add key="cheetah_val" value="release_val" xdt:Transform="Replace" xdt:Locator="Match(key)"/> 

    </appSettings> 
    <system.web> 
    <compilation xdt:Transform="RemoveAttributes(debug)" /> 

    </system.web> 
</configuration> 

HomeController를 web.release.config 여기에

<?xml version="1.0"?> 

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 

    <appSettings> 
    <add key="cheetah_val" value="debug_val" xdt:Transform="Replace" xdt:Locator="Match(key)"/> 

    </appSettings> 
    <system.web> 

    </system.web> 
</configuration> 

을 web.debug.config되어있는 Web.config 여기

<appSettings>  
    <add key="cheetah_val" value="default_val"/> 
    </appSettings> 

관련 부분 .cs

내가 출력이 디버그 모드에서 릴리스 모드와 debug_val에서 release_val 것으로 기대

@{ 
    ViewBag.Title = "Home Page"; 
} 

<h2>@ViewBag.CheetahMessage</h2> 

index.cshtml. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 아니면 중요한 것을 놓친 것입니까? 웹 사이트의 경우 F5 기능이 작동하지 않습니까? 웹 사이트의 경우 변환을 작동 시키려면 실제로 이것을 게시해야합니까?

답변

3

나의 이해는 내가 릴리스 모드에서 프로젝트를 실행하면 다음 프로젝트가 릴리스 변환에서 응용 프로그램 설정에서 읽을 것, 그리고 내가 디버그 모드에서 프로젝트를 실행 한 경우는 응용 프로그램에서 을 읽을 것 디버그 구성에서 설정하십시오.

나는 원래 slowcheetah에 대해 읽었을 때 내 가정이었습니다.

웹 사이트의 경우 실제로 이것을 게시하여 변환이 작동하도록해야합니까?

AFAIK, 변환 작업을하려면 웹 사이트와 웹 응용 프로그램 프로젝트 모두에 대해 게시해야합니다. 슬로우에 타 (Slowcheetah)는이 작업조차하지 않으며 VS 퍼블리싱 툴을 사용합니다. 슬로우 세타는 변형을 미리 볼 수있게 해줍니다.

내가 IIS Express에서 로컬로 디버깅 할 때 변환을 실행할 수 있기를 바랍니다.

하나의 가능한 솔루션은 컴퓨터에 실제 IIS를 설정하여 게시 디렉토리에서 서비스하는 것일 수 있습니다. 그런 다음 변환이 동작에 어떤 영향을 주는지 보려면 웹을 IIS에 게시하고 웹을 사용하여 사이트를 볼 수 있습니다. 나는 이것이 당신이 디버거를 부착하게 할 것이라고 생각하지 않는다.

+1

이 문제를 해결하기 위해 다른 사람이 아무렇지 않게 생각하는 방식을 보면 올바른 것으로 가정합니다. web.config에 개발자 설정이 있고 Web.Release.config에 릴리스 변환이 있으므로 즉각적인 목표를 달성 할 수 있습니다. 이는 단일 개발자에게만 적용되지만 모든 개발자는 동일한 설정을해야합니다. 그 일반 'F5'변환을 기대했지만 웹 앱에는 적용되지 않아야합니다. – voam

+2

다른 사람이 와서 나를 틀린 것으로 증명하면, 행복하게 답을 편집하여 표시를 취소 할 수 있습니다. 내가 말했듯이, 나는 F5에서도 변형을 얻을 수 있기를 원한다. – danludwig

+1

지원되는 웹 프로젝트에 적합하며 게시/패키지 중에 만 지원됩니다. SlowCheetah가 후드에서 web.config를 수정하면 VS에 문제가 발생할 수 있습니다. http://sedodream.com/2010/10/21/ASPNETWebProjectsWebdebugconfigWebreleaseconfig.aspx에서 내 블로그를 준비 할 수있는 해결 방법에 관심이 있다면. –

-1

나의 이해는 SlowCheetah가의 app.config위한 것이 아니다 Web.config의

이미 VS2010의 표준 부분이되어야한다 Web.config를 위해 같은 일을하고.

는 여기에 대해 이야기 스콧 Hanselman은의 http://www.hanselman.com/blog/WebDeploymentMadeAwesomeIfYoureUsingXCopyYoureDoingItWrong.aspx

(6 분 20초보고) 그리고 이것은 http://www.hanselman.com/blog/SlowCheetahWebconfigTransformationSyntaxNowGeneralizedForAnyXMLConfigurationFile.aspx

내 app.config에 대한 SlowCheetah를 사용하고 완벽하게 작동 SlowCheetah 에 대해 쓰고 그입니다.

+0

-1 SlowCheetah는 실제로 web.config에서 작동합니다. – danludwig

+0

VS2010은 이미 slowcheetah를 필요로하지 않고 web.config에 대한 변형 파일을 지원하기 때문에 저 또한 slowcheetah에 넣기에는 다소 무리가 있습니다. –

관련 문제