2012-04-10 8 views
3

私たちが持っているウェブサイト用のビルドスクリプトで作業しています。このウェブサイトは、従来のaspウェブアプリケーションのフォルダにasp.netウェブサイトを持つ古典的なaspウェブアプリケーションです。MSBuild - 一度にすべての設定変換を実行し、他のファイルを変換します。

我々は、さまざまなウェブのconfigsの代わりに置換する必要があるのglobal.asaの異なるバージョンを持っています。私たちは継続的な統合環境に移行しています。これはまだまだ新しいものです。私は、以下のタスクを実行するビルドスクリプトを作成しました。

  1. 存在する場合は、buildartifactsディレクトリをクリーンアップします。
  2. 渡されるすべての設定でソリューションファイルを作成します。これにより、各プロジェクトの出力が別のフォルダに作成されます。
  3. ファイルを必要なフォルダ構造にコピーします。
  4. MSDeployを同期として使用して結果をパッケージ化します。
  5. 私はそうのようなのMSBuildタスクを実行する私の最初の問題はこれです

... ...

<MSBuild Projects="$(SolutionFileName)" 
     Properties="Configuration=$(Configuration);OutDir=%(BuildArtifacts.FullPath)" /> 

これは、Webアプリケーションを構築しますが、任意の変換を適用しません。私は、MSBuildが変換を自動的に適用すると想定していました。代わりに、ビルドを含む出力フォルダ内の3つの設定ファイルがすべて終了します。どうしてこれなの?私はいくつかの検索を行ったherehere、彼らは変換を実行するために別のタスクを使用しています。 Visual Studioで変換を適用でき、Visual StudioでMSBuildを使用する場合、MSBuildで変換を適用できると思いますか? MSBuildの設定は認識されていませんか?また別に行う必要がある場合は、フォルダ構造の各レベルで複数のフォルダに複数の設定ファイルがある場合、すべての変換を一度に実行できますか?

私の第二の問題がある...よく私は従来のASP Webアプリケーションが設定にアクセスするかどうかはわかりません...ので、私たちは本当にそれのこの部分のための設定ファイルを使用することはできません従来のASP Webアプリケーションであることファイル?したがって、通常は手動で置き換えられるglobal.asaファイルのバージョンが異なります。私はその時に必要な特定のasaファイルを検索/コピーすることができますが、おそらくこの作業を行うために変換を使用する方法はありますか?

答えて

0

変換の問題については、我々は場合msdeployでの展開を整理したら...私たちは、場合msdeployが実際の展開の変換を実行することが分かりました。パッケージで作成されたXMLファイルの1つに変換データを格納します。

0

多分、これはあなたが必要とするものではないでしょうか。私は設定ファイル操作のためにXmlPreprocess toolを使用しています。私は複数の環境に1つのマッピングファイルを使用しています。 Excelでマッピングファイルを編集できます。それは非常に使いやすいです。

あなたはExecのタスクを使用してMSBuildのスクリプトから呼び出すことができます。