2

.NET Web API プロジェクトと Git でGo CDを使用したいと考えています。

パイプラインを介して特定のビルド アーティファクトを一部の環境に昇格させるというアイデアが気に入っています。現在、TeamCity を使用し、Git で分岐しています。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 Transforms を使用して) 使用する方法は? たとえば、ビルドがテスト環境に昇格するときは Web.Test.config を使用したいが、ステージング環境に昇格するときは Web.Staging.config を使用したい、などです。

また、.NET プロジェクトで Go CD を使用した経験があるかどうかも教えてください。

4

3 に答える 3

0

.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
于 2015-06-07T22:33:54.667 に答える