c# - 在 .NET 中使用 Go CD

标签 c# .net git deployment go-cd

我想使用 Go CD使用 .NET Web API 项目和 Git。

我喜欢通过管道将特定构建工件提升到某些环境的想法。目前我们在 Git 中使用 TeamCity 和分支。我们使用 MSBuild 通过特定的配置转换(测试、暂存、实时)进行构建和部署。

我们的 MSBuild 命令行参数如下:

/p:Configuration=%DeployConfiguration% /p:Platform=AnyCPU /t:WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl=%DeployPath%
  • %DeployConfiguration% 是每个环境的参数;测试、暂存、上线并使用 .NET Config Transforms 为指定环境转换 Web.config。
  • %DeployPath% 是每个项目每个环境的参数。所以 AuthAPI Live 类似于:\\liveServer\path\to\AuthAPI\

我的一个问题是:当构建工件被提升到管道中的下一阶段时,如何使用特定的环境配置(使用 .NET Config 转换)?因此,例如,当构建升级到测试环境时,我想使用 Web.Test.config,但当升级到暂存环境时,我想使用 Web.Staging.config 等。

另外我想知道您是否有在 .NET 项目中使用 Go CD 的经验?

最佳答案

我没有在 .NET 项目中使用 Go CD 的经验,但也许我的建议会有所帮助。

1.创建包含内容的 TransformStaging.csproj 文件:

<Project ToolsVersion="4.0" DefaultTargets="Transform" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="$(MSBuildProjectDirectory)\MSBuild\Microsoft.Web.Publishing.targets" />
    <Target Name="Transform">
        <Copy SourceFiles="$(Source)" DestinationFiles="$(Source).tmp"/>
        <TransformXml Source="$(Source).tmp" Transform="Web.Staging.config" Destination="$(Source)" />
    </Target>
</Project>

2.调用msbuild用

msbuild.exe TransformStaging.csproj /p:Source=$configFilePath

关于c# - 在 .NET 中使用 Go CD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30686131/

相关文章:

c# - 视觉 C# 2010 : Unable to connect to XAMPP localhost

c# - FileStream 参数读/写

.net - 如果只有一个 : exists in string,则提取冒号后的内容

.net - 如何用 libgit2sharp 处理 'git add *'?

git - 开源迷你 heroku?

git - PhpStorm Git 文件夹修改颜色

c# - 捕获数据网格的焦点移出事件

c# - 使用 Task.Factory.StartNew() 后是否需要 Wait()?

c# - 将大型 C# winforms 应用程序升级到 WPF 的最简单方法是什么

使用 hash/pound/# 的 JavaScript 重定向