2012-09-03 17 views
8

जब मैं विजुअल स्टूडियो 2012 के साथ अपनी एएसपी.नेट (वेबफॉर्म) वेबसाइट प्रकाशित करता हूं तो हमेशा सभी फाइलें अपलोड की जाती हैं। यहां तक ​​कि छवियों?विजुअल स्टूडियो 2012 आंशिक प्रकाशित

क्या बदली गई फ़ाइलों को प्रकाशित करने का कोई तरीका है?

उत्तर

1

नहीं, विजुअल स्टूडियो में प्रकाशित विज़ार्ड यह पेशकश नहीं करता है।

एक सुझाव स्थानीय रूप से प्रकाशित करना है और केवल बदली गई फ़ाइलों को मैन्युअल रूप से अद्यतन करना है।

+0

मैं downvote करना चाहते हैं यह बहुत बुरी तरह से। वे ऐसी सुविधा क्यों हटाएंगे?!?!? –

+0

@ScottBeeson उन्होंने इस सुविधा को वीएस 2012 अपडेट 2 में जोड़ा - http://www.west-wind.com/weblog/posts/2013/May/10/Publish- व्यक्तिगत- फ़ाइल-to-your- सर्वर-in- विज़ुअल -स्टूडियो -2012 –

+0

यह एकमात्र अच्छा तरीका है, यहां तक ​​कि वीएस 2012 अपडेट # 2 का उपयोग भी सुविधाजनक नहीं लगता है। माइक्रोसॉफ्ट के लिए एक शक्तिशाली एफ़टीपी जीयूआई आवेदन जोड़ना चाहिए। – qakmak

3

रिकॉर्ड के लिए, "केवल प्रकाशित फाइलें" चेक-बॉक्स जो VS2012 की प्रकाशित प्रोफ़ाइल में थी VS2012 की प्रकाशित प्रोफ़ाइल से हटा दी गई है। एक कदम आगे, दो कदम वापस।

+2

और रिकॉर्ड के लिए आगे: यह पता चला है कि वीएस2012 वेब परिनियोजन विकल्प (एफ़टीपी विकल्प के विपरीत) वास्तव में आपके द्वारा किए गए परिवर्तनों को ही तैनात करेगा। यहां तक ​​कि एक फैंसी भी है "मुझे परिवर्तन दिखाएं" जीयूआई और यह http (या ftp) के बजाय https पर प्रकाशित होता है जो कि बहुत अच्छा है। आपकी होस्टिंग कंपनी को इसका समर्थन करना चाहिए, और सौभाग्य से मेरा करता है (धन्यवाद DiscountASP.net)। मेरी क्लाइंट साइट्स में से किसी एक को छोड़कर सभी अच्छा है जो वेब परिनियोजन का उपयोग नहीं कर सकता है। Zoidbergi, शायद वेब परिनियोजन आपके मामले में काम करेगा। – gdoten

+1

मैं अब Azure में चले गए और ऐसा लगता है कि Azure के साथ केवल बदली गई फाइलें अपलोड की गई हैं। शायद एमएस ने आईआईएस 8 के साथ तैनाती प्रणाली को अद्यतन किया है? – daniel

0

उपयोग node-> npm-> घूंट उन्हें ट्रैक करने के लिए देखते हैं। इस तरह यह केवल तभी अपलोड होता है जब फ़ाइल बदल जाती है, और आपको परिवर्तन को ट्रैक करने की आवश्यकता नहीं होती है। हमें इन दिनों किसी भी तरह से गल्प का उपयोग करना चाहिए।

व्यक्तिगत रूप से सभी संपत्तियों को मैन्युअल रूप से प्रबंधित करने के लिए, या पूरे प्रकाशित पैकेज को अपलोड करने के लिए मजबूर होना, केवल पागल है। मैं किसी के लिए दृश्य स्टूडियो पर विश्वास नहीं कर सकता, यहां तक ​​कि नवीनतम 2015 संस्करण भी, कुछ बेहतर नहीं है। वास्तव में बहुत दुखी है।

यहाँ मेरी घूंट स्क्रिप्ट है, जो से प्राप्त किया गया है (मैं सिर्फ यह साफ वास्तव में):

`

var gulp = require('gulp'), 
gutil = require('gulp-util'), 
vftp = require('vinyl-ftp'); 

var fconfig { 
    host: "127.0.0.1", 
    port: "21", 
    user: "root", 
    password: "top-secret-tacos", 
    simultaneous_connections: 5, 
    file_lock_delay: 450, // ms to wait for lock release. "meh". 
    local_path: ".", 
    remote_path: "/my_path/as_seen/in_ftp/", 
    globs: { 
     "/assets/src/**/*.*css", 
     "/assets/src/**/*.js", 
     "/assets/dist/**/*", 
     "/**/*.ascx", // track .net changes and upload instantly when saved. 
     // don't track visual studio stuff. 
     "!./obj/**/*", 
     "!./bin/**/*", 
     "!./packages/", 
     "!./App_LocalResources/**/*", 
     "!./vs/**/*", 
     "!./properties/**/*", 
     "!./node_modules/**/*" 
    } 
}; 


    // Add debounce to gulp watch for FTP 
(function ftp_debounce_fix(){ 

    var watch = gulp.watch; 

    // Overwrite the local gulp.watch function 
    gulp.watch = function(glob, opt, fn){ 
    var _this = this, _fn, timeout; 

    // This is taken from the gulpjs file, but needed to 
    // qualify the "fn" variable 
    if (typeof opt === 'function' || Array.isArray(opt)) { 
     fn = opt; 
     opt = null; 
    } 

    // Make a copy of the callback function for reference 
    _fn = fn; 

    // Create a new delayed callback function 
    fn = function(){ 

     if(timeout){ 
     clearTimeout(timeout); 
     } 
     console.log("Delayed Task setup[450]."); 
     timeout = setTimeout(Array.isArray(_fn) ? function(){ 
     _this.start.call(_this, _fn); 
     } : _fn, fconfig.file_lock_delay); 

    }; 

    return watch.call(this, glob, opt, fn); 
    }; 

})(); 

function getFtpConnection() { 
    return vftp.create({ 
     host: fconfig.host, 
     port: fconfig.port, 
     user: fconfig.user, 
     password: fconfig.pass, 
     parallel: fconfig.simultaneous_connections, 
     log: gutil.log 
    }); 
} 
gulp.task('deploy', function() { 
    var conn = getFtpConnection(); 
    return gulp.src(fconfig.globs, { base: fconfig.local_path, buffer: false }) 
     .pipe(conn.newer(fconfig.remote_root)) // only upload newer files 
     .pipe(conn.dest(fconfig.remote_root)) 
    ; 
}); 
gulp.task('deploy-watch', function() { 
    var conn = getFtpConnection(); 

    gulp.watch(fconfig.globs) 
    .on('change', function(event) { 
     console.log('Changes detected! Uploading file "' + event.path + '", ' + event.type); 

     return gulp.src([event.path], { base: fconfig.local_path, buffer: false }) 
     .pipe(conn.newer(fconfig.remote_root)) // only upload newer files 
     .pipe(conn.dest(fconfig.remote_root)) 
     ; 
    }); 
});` 
+0

सिर्फ एक नोट, मैंने गल्प-घड़ी पर स्विच किया है क्योंकि गल्प 4.0 अभी भी अल्फा है। यह बहुत तेज़ है, और घटनाओं को बेहतर तरीके से संभालता है (जोड़ने और अनलिंक करने का समर्थन करता है)। अनुशंसा करते हैं कि आप उपरोक्त को संशोधित करें यदि आप इसका उपयोग करने जा रहे हैं, तो गल्प-घड़ी के एक प्रभाव के लिए। – Barry