1

自動展開を使用した CI プロセスに取り組んでいます。TFS ビルドがソリューションをビルドし、InvokeProcess タスクを使用して Powershell スクリプトを開始します。Powershell スクリプトは、sqlpackage を使用してデータベースの変更を dacpac としてデプロイし、Web サービスを使用してレポート サービス レポートを作成し、フォントを SSRS サーバーに送信し、Web サイト自体を 1 つ以上の Web サーバーにデプロイします。プロセス全体で、デプロイ構成ファイルを使用してドロップ パスを定義します。 、サーバー ips、インストール フォルダーなど。環境ごとにこれらのいずれかが存在します。

ソリューションをビルドして内部サーバーにデプロイし、自動ビルドの一部として自動テストを実行できるようにしたいと考えています。テストが完了し、ビルドが手動でチェックされたら、標準ビルド テンプレートの展開部分のみを持つ別のビルド定義を開始できるようにしたいと思います。これは単にビルド番号またはビルド ドロップ場所を取得します。 、同じビルドを別の環境 (つまり、ステージング、本番環境など) にデプロイします。

私が抱えている問題は、現在、構成ファイルの変換を使用してほとんどの Web/アプリ構成を管理していることです。つまり、Debug、Test、Prod などのビルド定義があり、次に Web.Debug.config、Web.Test.config などがあります。 1 つのビルドのみを実行し、その同じビルドを別の環境にデプロイしたいのですが、現時点では、ビルドは 1 つの環境 (つまり、ビルド構成が何であれ) の構成ファイルのみを生成します。

最善のアプローチは、すべての構成ファイルを生成すること (または実際には各環境の完全な構成ファイルを事前に作成すること) であり、特定の展開に適したものを選択することでしょうか? または、展開構成ファイルに env 固有の構成を保存し、展開時に powershell を使用して適切なキーを更新する必要がありますか?

ここで通常/推奨されるアプローチは何ですか?

4

1 に答える 1

2

ターゲット環境ごとに新しい構成を作成することをお勧めします (たとえば、デフォルトではデバッグ/リリースがあり、さらに作成します)。次に、組み込みの web.config 変換を使用します。非 Web プロジェクトでは、Slow Cheetahを使用します。

これにより、(ビルド定義で) ビルドするように指定した構成ごとに、事前構成されたビルド出力が吐き出されます。

于 2013-01-25T16:46:27.473 に答える