2012-04-24 2 views
5

CI 서버의 Visual Studio 웹 프로젝트에서 XML 구성 파일을 변환하기 위해 SlowCheetah를 사용하고 있습니다. Visual Studio 2010에서는 게시 할 때 XML이 잘 변형되지만 CI 서버에서는 변형이 발생하지 않습니다. 대신 원래 변환되지 않은 설정 파일을 얻습니다. Sayed Ibrahim's Blog에서 제공하는 지침에 따라 솔루션에서 SlowCheetah dll과 targets 파일을 추가하고 해당 파일을 사용하도록 프로젝트 파일을 지정합니다. 이 변경 작업을 수행하고 Visual Studio에서 게시하여 작업했는지 확인했습니다. 그러나 CI 서버에서 프로젝트를 빌드하면 이전과 같은 문제가 발생합니다.SlowCheetah가 CI 서버의 변환 된 구성 파일을 생성하지 않습니다.

내 가정은 CI 서버에서 프로젝트를 빌드하는 데 사용하는 MSBuild 스크립트와 관련이 있다는 것입니다. 저에게 SlowCheetah를 사용하도록 프로젝트에 알려주기 위해 뭔가를 추가해야합니까? 다음과 같이 내 빌드 스크립트는 다음과 같습니다

<Project DefaultTargets="DoPublish" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
<PropertyGroup> 
    <SourceFileRootFolder>$(CCNetWorkingDirectory)\Code</SourceFileRootFolder> 
    <WebFolder>DCSIWeb\DCSIWeb</WebFolder> 
    <ReleaseFolder>C:\Builds\BuildFolder</ReleaseFolder> 
</PropertyGroup> 
<PropertyGroup Condition ="$(CCNetWorkingDirectory) == ''"> 
    <SourceFileRootFolder>C:\Builds\ProjectWorkingDirectory\Code</SourceFileRootFolder> 
    <ReleaseFolder>C:\Builds\BuildFolder</ReleaseFolder> 
</PropertyGroup> 
<Target Name="CleanSource"> 
    <Message Text="Removing all source files from $(ReleaseFolder)" /> 
    <RemoveDir Directories="$(ReleaseFolder)" /> 
</Target> 
<Target Name="DoPublish"> 
    <CallTarget Targets="CleanSource"/> 
    <MSBuild Projects="$(SourceFileRootFolder)\DCSIWeb.sln" Targets="Clean;Build" /> 
    <MSBuild Projects="$(SourceFileRootFolder)\$(WebFolder)\DCSIWeb.csproj" 
     Targets="_CopyWebApplication;_BuiltWebOutputGroupOutput;TransformWebConfig" 
     Properties="OutDir=$(ReleaseFolder)\" ></MSBuild> 
</Target> 

은 MSBuild 스크립트는 기본적으로 프로젝트를 빌드하고있는 프로젝트를 배치 "C : \는 \ BuildFolder는 구축". 빌드가 완료된 후 빌드 폴더를 보면 필요한 .config 파일이 있지만 변환이 발생하지 않았습니다. 이전과 같은 파일입니다.

+0

저에게 이메일을 보내시겠습니까? [Slowed] [Microsoft] [dotcom] –

+2

나는 SlowCheetah 설치 프로그램이 지금까지 본 것에서 사용자 지정 위치에 코드를 저장하는 동일한 문제를 발견했습니다. 따라서 SlowCheetah를 자신으로 설치하고 다른 사용자로 CI를 실행하는 경우 자체 코드를 찾을 수 없어 SlowCheetah를 실행할 수없는 것일 수 있습니다. 그게 내가 지금까지 발견 한 바에 따르면 어쨌든 ... TeamCity에서 실행 중이다.) –

+1

잭, 위에 링크 된 블로그의 지침을 따르습니까? –

답변

0

나는 항상 그런 종류의 답변을 싫어하지만, Config Transformation Tool을 사용하는 것이 좋습니다. Xdt 변환을 사용하는 또 다른 도구이지만 Cheetah와 약간의 영리한 (지원 params) 다음에 심각한 MSBuild 작업이 훨씬 간단합니다. 솔루션에 저장하거나 NuGet 패키지를 통해 CI 서버에 자동으로 복원 할 수 있습니다. 당신은 params를 가진 call 유틸리티를 필요로합니다. 나는 Xdt가 제작 된 이래로이 도구를 내 프로젝트에서 사용하기 가장 쉬운 것으로 발견했습니다.

관련 문제