在VS2015中发布到azure,并显示以下消息:“预先发布”'脚本失败,状态码为1

时间:2016-03-02 22:04:26

标签: azure asp.net-mvc-5 visual-studio-2015 publish asp.net-core-1.0

我使用现有的ASP.NET 4 / MVC 5网站并手动转换为ASP.NET 5 / MVC 6项目。

当我在本地获得完全功能的应用程序时,我试图在Azure上发布到以前的Web应用程序。要做到这一点我:

  1. 从Azure门户下载发布配置文件。
  2. 右键单击Web项目并选择" Publish"。
  3. 导入发布配置文件并尝试发布。
  4. 令人惊讶的是,它第一次有效。 但是在随后的发布尝试中,我收到了错误:

      

    错误:'预先发布'脚本失败,状态码为1。

    查看发布的输出我看到以下内容:

      

    [13:25:07]' min:ngAppJs' 307毫秒后出错了   [13:25:07]错误:EPERM,打开' C:\ SCM \ Holos Portal 1.0(ASP.Net 5,MVC6)\ HolosPortal \ src \ HolosPortal \ wwwroot \ ngApp \ ngApp.min.js&#39 ;   C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ Web \ Microsoft.DNX.Publishing.targets(152,5):错误:' preublish'脚本失败,状态码为1   
      2>由于构建错误,发布失败。查看错误列表以获取更多详细信息。

1 个答案:

答案 0 :(得分:1)

我最终发现如果删除输出文件(ngApp.min.js),发布会成功,但在下次发布时会再次失败。

我为我的角应用创建了一个新的min任务

gulp.task("min:ngAppJs", function () {
    return gulp.src([paths.ngAppJs, "!" + paths.ngAppMinJs], { base: "." })
        .pipe(concat(paths.concatNgAppJsDest))
        .pipe(uglify())
        .pipe(gulp.dest("."));
});

但我忽略了创建清理任务以删除输出文件

gulp.task("clean:ngAppJs", function (cb) {
    rimraf(paths.concatNgAppJsDest, cb);
});

gulp.task("clean", ["clean:js", "clean:ngAppJs", "clean:css"]);

将清理任务添加到gulpfile.js解决了这个问题。