2012-04-24 43 views
5

我正在使用SlowCheetah转换CI服务器上的Visual Studio Web项目中的XML配置文件。在Visual Studio 2010中,当我发布时,XML将会很好地转换,但在CI服务器上不会发生转换。相反,我只是得到原始的非转换配置文件。我遵循Sayed Ibrahim's Blog提供的说明,他解释了在解决方案中添加SlowCheetah dll和目标文件,并指出项目文件使用这些文件。我做了这个改变,并在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

你能给我发电子邮件吗? sayedha [at] {Microsoft} [dotcom] – 2012-05-01 06:08:47

+2

我遇到过同样的问题...从我目前看到的SlowCheetah安装程序将代码放在用户指定的位置。因此,如果您将SlowCheetah安装为自己并在不同的用户下运行您的CI,则可能是SlowCheetah无法运行,因为它找不到自己的代码。这就是我迄今为止发现的...仍然没有得到它自己在TeamCity中运行;) – 2012-05-03 08:25:09

+1

杰克,按照我上面链接的博客上的指示? – 2012-05-05 17:17:22

回答

0

我总是不喜欢那种答案,但我建议你使用Config Transformation Tool。这是使用Xdt转换的另一种工具,但它比Cheetah简单得多,并且有点聪明(支持参数),然后是严重的MSBuild任务。它可以存储在解决方案中或通过NuGet软件包在CI服务器上自动恢复。你只需要用params调用实用程序。 我是Xdt的粉丝,因为在制作过程中发现这个工具最容易在我的项目中使用。

相关问题