我正在使用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文件,但未发生转换。这是之前的文件。
你能给我发电子邮件吗? sayedha [at] {Microsoft} [dotcom] – 2012-05-01 06:08:47
我遇到过同样的问题...从我目前看到的SlowCheetah安装程序将代码放在用户指定的位置。因此,如果您将SlowCheetah安装为自己并在不同的用户下运行您的CI,则可能是SlowCheetah无法运行,因为它找不到自己的代码。这就是我迄今为止发现的...仍然没有得到它自己在TeamCity中运行;) – 2012-05-03 08:25:09
杰克,按照我上面链接的博客上的指示? – 2012-05-05 17:17:22