_TFS 2010
_から_TFS 2015
_にアップグレードしたばかりで、「vNext」ビルド/ワークフロー形式でXAML-Build-Definitionを再作成しています。
古いビルドでは、元のディレクトリ構造なしで、すべてのファイル(DLL)を1つのディレクトリにフラットに出力することができました。
これは、新しいTFS 2015ビルドフレームワークでも引き続き可能ですか?
私は次の_Publish Build Artifact
_-設定を持っています:
_Artifact Type: File Share
_
Path: \\server\tfslib\$(Build.DefinitionName)\$(Build.DefinitionName)_$(Build.BuildNumber)
問題は、元のソリューションのディレクトリ構造がPath
で指定された出力ディレクトリに保持されることです。サブツリー全体なしで出力を取得するにはどうすればよいですか?
回避策として、現在_Publish Build Artifact
_の後にPowershellステップを使用してこれを行っていますが、公開プロセス自体の間にこれを行うと便利です。
この機能を実現するには、「ファイルのコピー」タスクを使用して、その中のソースフォルダーを指定できます。詳細については、この質問を参照してください: Visual Studioチームサービスからのデプロイ時にターゲットディレクトリに1つのファイルをコピーします
これは引き続き可能です。次のコマンドライン引数をVisualStudioBuildまたはMsBuildタスクに渡すことができます。
_/p:OutputPath="$(Build.BinariesDirectory)"
_
これにより、古いXAMLビルドから慣れていたように、すべての出力をバイナリディレクトリにリダイレクトするようにビルドタスクに指示します。
または、Visual Studio MarketPlaceのmy MsBuild Helper task を使用して出力パスを構成し、$(MsBuildAdditionalArguments)
変数をMsBuildまたはVisualStudioBuildの追加の引数入力に追加します。
また、このMSBuild引数を与えてみてください
/p:GenerateProjectSpecificOutputFolder=true /p:OutDirWasSpecified=true
/p:OutputPath=$(Build.BinariesDirectory)