Visual Studio 2012로 내 ASP.NET (webforms) 웹 사이트를 게시 할 때 항상 모든 파일이 업로드됩니다. 심지어 이미지?Visual Studio 2012 부분 게시
변경된 파일 만 게시 할 수있는 방법이 있습니까?
Visual Studio 2012로 내 ASP.NET (webforms) 웹 사이트를 게시 할 때 항상 모든 파일이 업로드됩니다. 심지어 이미지?Visual Studio 2012 부분 게시
변경된 파일 만 게시 할 수있는 방법이 있습니까?
그냥 참고 : Microsoft는 VS 2012 업데이트 # 2에 해당 기능을 추가 :
아니요, Visual Studio의 게시 마법사는이 기능을 제공하지 않습니다.
제안 사항은 로컬로 게시하고 변경된 파일 만 수동으로 업데이트하는 것입니다.
'
내가 downvote 할 이건 심하게. 왜 그들은 그러한 기능을 제거하겠습니까?!?!?! –@ScottBeeson 그들은 VS 2012 업데이트 2 - http://www.west-wind.com/weblog/posts/2013/May/10/Publish-Individual-Files-to-your-Server-in-Visual에서이 기능을 추가했습니다. -Studio-20122 –
좋은 방법 일뿐입니다. VS 2012 업데이트 # 2를 사용하더라도 편리하지 않습니다. Microsoft는이를 위해 강력한 FTP GUI 응용 프로그램을 추가해야합니다. – qakmak
레코드의 경우 VS2012의 게시 프로필에 있던 "변경된 파일 만 게시"확인란이 VS2012의 게시 프로필에서 제거되었습니다. 1 단계 앞으로, 2 단계 뒤로.
그리고 기록을 위해 VS2012 웹 배포 옵션 (FTP 옵션과 반대)이 실제로 변경 사항을 배포하게됩니다. "변경 사항 표시"라는 멋진 기능이 있으며 http (또는 ftp) 대신 https를 통해 게시됩니다. 귀하의 호스팅 회사가 이것을 지원해야하며, 다행히도 내 회사는 (감사합니다 DiscountASP.net) 않습니다. 웹 배포를 사용할 수없는 클라이언트 사이트를 제외한 모든 것이 좋습니다. Zoidbergi, 아마도 Web Deploy가 귀하의 경우에 효과가 있습니다. – gdoten
저는 Azure로 옮겼습니다. Azure를 사용하면 변경된 파일 만 업로드됩니다. 어쩌면 MS가 IIS8을 사용하여 배포 시스템을 업데이트 했습니까? – daniel
사용은 노드 -> 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))
;
});
});`
그냥 메모, 나는 꿀꺽 꿀꺽으로 전환했습니다 - 4.0 꿀꺽 꿀꺽 4.0 이후 여전히 시계입니다. 훨씬 더 빠르며 이벤트를 더 잘 처리합니다 (추가 및 연결 해제도 지원합니다). 당신이 gulp-watch의 impl에 대해 그것을 사용한다면 위의 것을 수정하도록 권장하십시오. – Barry
2013 년에도 적용됩니다! –