【问题标题】:Script for deploying ASP.NET MVC 6 website to Azure用于将 ASP.NET MVC 6 网站部署到 Azure 的脚本
【发布时间】:2015-12-18 05:01:38
【问题描述】:

我正在寻找将 ASP.NET 5 / MVC 6 应用程序部署到 Azure 网站的脚本(例如 PowerShell)。理想情况下,它应该是构建项目并将其部署到 Azure 的单个脚本。

我还想运行 Entity Framework 7 迁移并在脚本中执行一些自定义 JavaScript 缩小/捆绑。

如果你们中的任何人对如何实现这一点有任何想法,我将不胜感激,谢谢!

【问题讨论】:

    标签: asp.net asp.net-mvc powershell azure asp.net-core-mvc


    【解决方案1】:

    让我们先分离主题。

    要将 Web 应用程序部署到 Azure,为什么不使用 Continuous Integration?如果将 Web 应用程序与存储库链接,则可以选择一个分支,每次推送到该分支时,它都会部署在 Azure 上。

    您可以更进一步,配置部署槽(特别是暂存槽)并配置自动交换以减少冷启动。

    对于 Javascript 缩小,您可以将 Gulp/Grunt 与在您的开发环境中运行的任务一起使用(并将缩小的输出提交到您的存储库),或者您可以将任务作为您定义的“postrestore”操作运行project.json file。一个简单的:

    {
      "scripts": {
        "postrestore": ["npm install", "bower install","gulp default"]
      }
    }
    

    将通过提取您定义的 bower 包然后运行默认的 gulp 任务来解决问题。

    您的默认 gulp 任务可能类似于:

    var gulp = require('gulp');  
    var mainBowerFiles = require('main-bower-files');
    var bower = require('gulp-bower');  
    var uglify = require('gulp-uglify');
    var ignore = require('gulp-ignore');
    var del = require('del');
    
    var project = require('./project.json');  
    var lib = project.webroot + '/dist'; 
    
    gulp.task('clean',function(done){
        del(lib, done);
    });
    
    gulp.task('bower:install', ['clean'], function () {  
        return bower();
    });
    
    gulp.task('default', ['bower:install'], function () {  
        return gulp.src(mainBowerFiles())
            .pipe(ignore.exclude([ "**/*.css","**/*.less" ]))
          .pipe(uglify())
          .pipe(gulp.dest(lib+'/js'));
    });
    

    【讨论】:

    • 谢谢。这看起来是处理部署的好方法!您将如何在部署时运行 EF7 迁移?如果我理解正确,这可以在 Startup.cs 中完成,但如果我从 Azure 门户回滚到以前的版本,它是否有效?
    • 持续部署失败并出现错误。 Separate question here.
    【解决方案2】:

    您可以使用 PowerShell 和 Visual Studio Team Services 在 Azure 中自动部署您的 Web 应用程序。

    例如,可以创建一个执行某些 PowerShell 脚本的工作流,该脚本执行 DNU 还原、代码迁移,然后在源代码存储库上完成提交后立即发布 Web 应用程序。

    我认为下面的文章会对你有所帮助:https://msdn.microsoft.com/en-us/Library/vs/alm/Build/azure/deploy-aspnet5

    希望这会有所帮助,

    朱利安

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-27
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多