2013-05-01 17 views
30

TFSビルドを作成しようとしていますが、自分のビルド用に選択した構成に関連付けられたweb.configトランスフォームを作成しています。私がビルドを実行すると、web.configファイルをチェックします。変換は適用されていません。 VS2012からパブリッシュすると、変換が正しく機能します。TFS 2012とweb.configの変換

TFS 2012(Update 2)をセットアップし、ビルド用に別のサーバーを用意しました。ビルドサーバーにVS2012がインストールされていませんが、C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ WebとWebApplicationsフォルダとファイルが、開発マシンからビルドサーバーにコピーされました。

私は自分のプロジェクトでいくつかの設定を作成し、関連付けられているWebに{tm}を追加しました。{configname} .config

私はビルドを作成し、ビルドする設定 - ビルドする設定をプロジェクトの設定の1つに設定しました。私はそれがデバッグとリリースのみを持っていることに気付きました。私が作成した設定はありませんでした。 (側面の質問:それは正しいですか、または私が作成したすべての設定を表示する必要があります)

私はビルドを実行し、出力フォルダを確認し、web.configは変換を適用していません。私に必要なことは他にありますか?

答えて

2

「ビルドする項目 - >ビルドする構成」リストで、設定名を入力できます。

それは、助けて次のMSBuild引数を追加しようとしていない場合:/ P:TransformConfigFiles =真(3. [詳細] - > [MSBuildの引数)

37

だけ投げ/ P:TransformConfigFiles =真がないだろうに実際に何かをする。

ます。また、プロジェクトファイルにこのターゲットを追加する必要があります。

<Target Name="TransformConfigFiles" AfterTargets="AfterBuild" Condition="'$(TransformConfigFiles)'=='true'"> 
    <ItemGroup> 
     <DeleteAfterBuild Include="$(WebProjectOutputDir)\Web.*.config" /> 
    </ItemGroup> 
    <TransformXml Source="Web.config" Transform="$(ProjectConfigTransformFileName)" Destination="$(WebProjectOutputDir)\Web.config" /> 
    <Delete Files="@(DeleteAfterBuild)" /> 
</Target> 

これは私のソースです:http://blog.degree.no/2012/03/automatic-config-transformations/

+0

作品をMSBuildのint型!また、ここでのコードサンプルは、そのブログ投稿(2つの場所に\ outを残す)からの入力ミスを修正します。 – Abacus

+1

ビルド中にこれらの行をcsprojファイルに追加した後、エラーが発生しました: '"TransformXml"タスクが見つかりませんでした。 誰かが同じものを持っている場合は、このターゲットの前にこれを追加することができます <プロジェクトのインポート> $(MSBuildExtensionsPath32)\ Microsoft \ VisualStudio \ v12.0 \ Web \ Microsoft.Web.Publishing.targets "条件="!Exists( ' $(VSToolsPath)\ Web \ Microsoft.Web.Publishing.targets ') "/> – Vitalii

+0

素晴らしい、これは私のために働いた(VS2015、TFS2015)! 多くの感謝!しかし、ビルド構成を指定するだけでは不十分です.... MSがときどき奇妙な実装をするのは非常に奇妙です... – Vladislav

1

は右、あなたのソリューションファイルをクリックしてプロパティに移動し、構成プロパティをクリックし、設定をクリックしてください上のマネージャー。異なる環境の構成が適切に設定されていることを確認してください。正しく設定されていない場合は、正しく設定し、コードをチェックインしてください。今すぐあなたのビルドテンプレートに移動し、プロセスタブでプロパティをビルドするための設定を確認し、あなたは異なる設定を見ることができる必要があります。設定がすでに正しく設定されている場合は、新しい設定名をbuildプロパティに入力して追加することもできます。

注:web.configトランスフォームファイルを右クリックして、プレビュートランスフォームを選択して、トランスフォーム設定が正常に動作していることを確認することもできます。それが正常に動作している場合は、また、パブリッシュプロファイルの名前を付けることができ

は、彼が私のために引数セクション

/p:DebugSymbols=false;DebugType=None;DeployOnBuild=true;PublishProfile=Stage