私はTFSビルドプロジェクトを使用して、他のものの中でSASSをコンパイルするためのgulpfileを含むVisual Studio 2015プロジェクトをビルドしています。 MSBuildタスクとTask Runnerバインディングを使用してイベントのシーケンスを理解しようとしています。 MSBuildのは、私のデフォルトの一気のタスクBeforeBuildを検出し、実行するのに十分な知っていることが表示されます:イベントの順序 - MSBuildとタスクランナーのバインディング(Gulp)
/// <binding BeforeBuild='default' />
var gulp = require('gulp');
var sass = require('gulp-sass');
var importer = require('sass-importer-npm');
gulp.task('sass', function() {
return gulp.src([
'./sass/**/*.scss',
'./node_modules/font-awesome/scss/**/*.scss'
])
.pipe(sass({ importer: importer }).on('error', sass.logError))
.pipe(gulp.dest('./Content/css'));
});
私は出版のためのプロジェクトで生成されたファイルを含めることができるようにBeforeBuild目標後に実行するMSBuildのターゲットを使用しています:これら二つのことが正しい順序で実行するように見える
<ItemGroup>
<ProjectsToBuild Include="$(MSBuildThisFileDirectory)..\MyProject.sln">
<AdditionalProperties>
VisualStudioVersion=$(VisualStudioVersion);
OutputPath=$(OutputRoot);
WebPublishMethod=FileSystem;
publishUrl=$(StageFolder);
DeployOnBuild=false;
DeployTarget=WebPublish;
PublishProfile=$(MSBuildThisFileFullPath)
</AdditionalProperties>
</ProjectsToBuild>
</ItemGroup>
<MSBuild Projects="@(ProjectsToBuild)" Properties="Configuration=Dev"/>
everyti:ここ
<Target Name="CopyGulpFiles" AfterTargets="BeforeBuild">
は、関連する情報との私のビルド.projファイルの私のMSBuildの呼び出しです私はそれらを実行します。これはいくつかの質問を提起します:
- タスクランナーの 'BeforeBuild'バインディングは、MSBuildの 'BeforeBuild'ターゲットの前に実行されますか?
- ここでバインディング/ターゲットの順序は決定的ですか?
- AfterTargetsプロパティを使用すると、BeforeBuildステージ全体(ターゲットとバインディング)が完了した後でこれが実行されますか?
- MSBuildはGulpファイルの使用方法をどのように知っていますか?私はそれがビジュアルスタジオの用途と同じメカニズムでなければならないと仮定します。