2012-09-03 22 views

risposta

1

No, la pubblicazione guidata in Visual Studio non offre questo.

Un suggerimento è quello di pubblicare localmente e aggiornare solo manualmente i file modificati.

+0

voglio downvote questo SO male. Perché dovrebbero rimuovere una funzione del genere?!?!?! –

+0

@ScottBeeson Hanno aggiunto questa funzionalità in VS 2012 Update 2 - http://www.west-wind.com/weblog/posts/2013/May/10/Publish-Individual-Files-to-your-Server-in-Visual -Studio-20122 –

+0

questo è un buon modo, anche usare VS 2012 Update # 2 non si sente ancora conveniente. Per questo, Microsoft dovrebbe aggiungere una potente applicazione di interfaccia grafica FTP. – qakmak

3

Per la cronologia, la casella di controllo "Pubblica solo i file modificati" presente nel profilo di pubblicazione di VS2012 è stata rimossa dal profilo di pubblicazione di VS2012. Un passo avanti, due passi indietro.

+2

E inoltre per la cronaca: risulta che l'opzione VS2012 Web Deploy (al contrario dell'opzione FTP) distribuirà effettivamente solo le modifiche apportate. C'è anche una finzione "mostrami i cambiamenti" e pubblica su https invece di http (o ftp) che è grandioso. La tua società di hosting deve supportare questo, e fortunatamente il mio lo fa (grazie DiscountASP.net). Va bene tranne uno dei miei siti client che non possono utilizzare Web Deploy. Zoidbergi, forse Web Deploy funzionerà nel tuo caso. – gdoten

+1

Ora mi sono spostato in Azure e sembra che con Azure vengano caricati solo i file modificati. Forse MS ha aggiornato il sistema di distribuzione con IIS8? – daniel

0

Usa node-> npm-> sorso guardare per tenere traccia di loro. In questo modo si carica solo quando un file viene modificato e non è necessario tenere traccia del changeset. Comunque dovremmo tutti usare gulp in questi giorni.

Dovendo gestire manualmente tutte le risorse individualmente, o essere costretti a caricare l'intero pacchetto pubblicato, è semplicemente pazzesco. Io per primo non posso credere che lo studio visivo, anche la più recente edizione 2015, non abbia qualcosa di meglio. Davvero triste.

Ecco il mio script sorso, che è stato provenienti da (ho appena ripulito davvero):

`

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

solo una nota, ho passato a gulp-watch dato che gulp 4.0 è ancora alfa. È molto più veloce e gestisce meglio gli eventi (supporta anche aggiungere e scollegare). Vi consiglio di modificare quanto sopra se lo userete, per un impl of gulp-watch. – Barry

Problemi correlati