2012-09-03 3 views
8

Visual Studio 2012로 내 ASP.NET (webforms) 웹 사이트를 게시 할 때 항상 모든 파일이 업로드됩니다. 심지어 이미지?Visual Studio 2012 부분 게시

변경된 파일 만 게시 할 수있는 방법이 있습니까?

답변

1

아니요, Visual Studio의 게시 마법사는이 기능을 제공하지 않습니다.

제안 사항은 로컬로 게시하고 변경된 파일 만 수동으로 업데이트하는 것입니다.

+0

'

내가 downvote 할 이건 심하게. 왜 그들은 그러한 기능을 제거하겠습니까?!?!?! –

+0

@ScottBeeson 그들은 VS 2012 업데이트 2 - http://www.west-wind.com/weblog/posts/2013/May/10/Publish-Individual-Files-to-your-Server-in-Visual에서이 기능을 추가했습니다. -Studio-20122 –

+0

좋은 방법 일뿐입니다. VS 2012 업데이트 # 2를 사용하더라도 편리하지 않습니다. Microsoft는이를 위해 강력한 FTP GUI 응용 프로그램을 추가해야합니다. – qakmak

3

레코드의 경우 VS2012의 게시 프로필에 있던 "변경된 파일 만 게시"확인란이 VS2012의 게시 프로필에서 제거되었습니다. 1 단계 앞으로, 2 단계 뒤로.

+2

그리고 기록을 위해 VS2012 웹 배포 옵션 (FTP 옵션과 반대)이 실제로 변경 사항을 배포하게됩니다. "변경 사항 표시"라는 멋진 기능이 있으며 http (또는 ftp) 대신 https를 통해 게시됩니다. 귀하의 호스팅 회사가 이것을 지원해야하며, 다행히도 내 회사는 (감사합니다 DiscountASP.net) 않습니다. 웹 배포를 사용할 수없는 클라이언트 사이트를 제외한 모든 것이 좋습니다. Zoidbergi, 아마도 Web Deploy가 귀하의 경우에 효과가 있습니다. – gdoten

+1

저는 Azure로 옮겼습니다. Azure를 사용하면 변경된 파일 만 업로드됩니다. 어쩌면 MS가 IIS8을 사용하여 배포 시스템을 업데이트 했습니까? – daniel

0

사용은 노드 -> 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 꿀꺽 꿀꺽 4.0 이후 여전히 시계입니다. 훨씬 더 빠르며 이벤트를 더 잘 처리합니다 (추가 및 연결 해제도 지원합니다). 당신이 gulp-watch의 impl에 대해 그것을 사용한다면 위의 것을 수정하도록 권장하십시오. – Barry