मैं एक विजुअल स्टूडियो 2015 प्रोजेक्ट बनाने के लिए एक टीएफएस बिल्ड प्रोजेक्ट का उपयोग कर रहा हूं जिसमें एसएएसएस को अन्य चीजों के साथ संकलित करने के लिए एक गिल्फ़ाइल शामिल है। मैं एमएसबिल्ड टास्क और टास्क रनर बाइंडिंग का उपयोग करके घटनाओं के अनुक्रम को समझने की कोशिश कर रहा हूं। ऐसा लगता है कि MSBuild का पता लगाने और मेरा डिफ़ॉल्ट घूंट कार्य BeforeBuild चलाने के लिए पर्याप्त जानता है:घटनाक्रम का आदेश - एमएसबिल्ड और टास्क रनर बाइंडिंग्स (गुलप)
/// <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 लक्ष्य का उपयोग करने के लिए कर रहा हूँ:
<Target Name="CopyGulpFiles" AfterTargets="BeforeBuild">
यहाँ अपने निर्माण में मेरी MSBuild कॉल .proj प्रासंगिक जानकारी के साथ फ़ाइल है:
<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 में चलाने के लिए लग रहे हैं मैं उन्हें चलाता हूँ। इससे कुछ प्रश्न उठाए गए हैं:
- क्या टास्क रनर के लिए 'प्रीबिल्ड' बाध्यकारी एमएसबिल्ड में 'पहले बिल्ड' लक्ष्य से पहले निष्पादित किया जाएगा?
- बाइंडिंग/लक्ष्य निर्धारित करने का क्रम यहां निर्धारित है?
- क्या आफ्टरटेक्शंस प्रॉपर्टी का उपयोग करना सुनिश्चित करता है कि यह पूरे 'प्रीबिल्ड' चरण (लक्ष्य और बाइंडिंग) पूरा होने के बाद चलाया जाता है?
- MSBuild कैसे जानता है कि मेरी Gulp फ़ाइल का उपयोग कैसे करें? मुझे लगता है कि दृश्य स्टूडियो उपयोग के रूप में यह एक ही तंत्र होना चाहिए।