【问题标题】:SlowCheetah not producing transformed config file on CI serverSlowCheetah 不在 CI 服务器上生成转换后的配置文件
【发布时间】:2012-05-05 13:02:58
【问题描述】:

我正在使用 SlowCheetah 在 CI 服务器上的 Visual Studio Web 项目中转换 XML 配置文件。在 Visual Studio 2010 中,当我发布时 XML 会很好地转换,但在 CI 服务器上不会发生转换。相反,我只得到原始的未转换的配置文件。我按照Sayed Ibrahim's Blog 提供的说明进行操作,他解释了在解决方案中添加 SlowCheetah dll 和目标文件,并将项目文件指向使用这些文件。我进行了此更改并在 Visual Studio 中进行了发布,以确保它有效并且确实有效。但是当我在 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:\Builds\BuildFolder”。当我在构建完成后查看构建文件夹时,我看到了我需要的 .config 文件,但没有发生任何转换。与之前的文件相同。

【问题讨论】:

  • 你能给我发电子邮件吗? sayedha [at]{Microsoft}[dotcom]
  • 我也遇到过同样的问题……从我目前看到的情况来看,SlowCheetah 安装程序将代码放置在用户特定的位置。因此,如果您以自己的身份安装 SlowCheetah 并在不同的用户下运行 CI,那么 SlowCheetah 可能无法运行,因为它找不到自己的代码。无论如何,这就是我到目前为止所发现的......仍然没有让它在 TeamCity 中运行;)
  • 杰克,是否按照我上面链接的博客中的说明进行操作?
  • 仅供参考,SlowCheetah 现在有一个 NuGet 包,您可以使用它。更多信息请访问sedodream.com/2012/12/24/…

标签: asp.net msbuild slowcheetah


【解决方案1】:

尝试使用 2.5.10 版本。我已经修改了 SlowCheetah 以将 .targets 文件添加到项目中。现在不需要额外的配置。更多信息请访问https://github.com/sayedihashimi/slow-cheetah/issues/113

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-10
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      • 1970-01-01
      • 2016-04-03
      • 2018-09-14
      • 2013-08-22
      相关资源
      最近更新 更多