[英]Visual Studio 2012 partial publish
當我使用Visual Studio 2012發布我的ASP.NET(webforms)網站時,總是會上傳所有文件。 甚至圖像?
有沒有辦法只發布更改的文件?
僅供參考:微軟在VS 2012 Update#2中添加了該功能:
為了記錄,VS2012的發布配置文件中的“僅發布已更改文件”復選框已從VS2012的發布配置文件中刪除。 前進一步,后退兩步。
不,Visual Studio中的發布向導不提供此功能。
建議是在本地發布,僅手動更新已更改的文件。
使用node-> npm-> gulp watch來跟蹤它們。 這樣它只在文件更改時上傳,而您根本不需要跟蹤變更集。 無論如何,我們這些天都應該使用gulp。
必須單獨手動管理所有資產,或者被迫上傳整個已發布的軟件包,這簡直太瘋狂了。 我無法相信視覺工作室,即使是最新的2015版本,也沒有更好的東西。 真的很傷心。
這是我的gulp腳本,源自(我剛剛清理過它):
`
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 ) )
;
});
});`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.