7

发布我的 asp.net 5 项目时,输出目录保持为空,我收到错误消息:“'prepare' 脚本失败,状态码为 -1073741819。”

这是我的发布设置:

  • 发布目标:“文件系统”
  • 目标位置:“D:\Users\cseedj\Documents\Visual Studio 2015\Publish”
  • 配置:调试
  • DNX 版本:默认 (cnx-clr-win-x86.1.0.0-beta4)

这是完整的输出:

Connecting to D:\Users\cseedj\Documents\Visual Studio 2015\Publish...
Environment variables:
Path=D:\Users\cseedj\Documents\Visual Studio 2015\Projects\MvcDebug-Tweaking\src\MvcDebug\.\node_modules\.bin;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\\Extensions\Microsoft\Web Tools\External;%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\\Extensions\Microsoft\Web Tools\External\git
C:\Users\cseedj\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta4\bin\dnu.cmd publish "D:\Users\cseedj\Documents\Visual Studio 2015\Projects\MvcDebug-Tweaking\src\MvcDebug" --out "C:\Users\cseedj\AppData\Local\Temp\PublishTemp" --configuration Debug --runtime dnx-clr-win-x86.1.0.0-beta4 --wwwroot-out "wwwroot" --quiet
[09:07:41] Using gulpfile D:\Users\cseedj\Documents\Visual Studio 2015\Projects\MvcDebug-Tweaking\src\MvcDebug\gulpfile.js
[09:07:41] Starting 'clean'...
[09:07:41] Finished 'clean' after 650 μs
[09:07:41] Starting 'copy'...
[09:07:41] Finished 'copy' after 17 ms
The 'prepare' script failed with status code -1073741819.

现在,当我复制 dnu 命令并在命令行中执行它时,它工作正常:我在发布文件夹中获取文件(实际上,我仍然在发布的代码中收到错误 500,但这是另一个问题)。

我也尝试以管理员身份运行 Visual Studio,确保这不是与文件系统权限相关的问题,但这无济于事......

那么为什么“发布”在 VS 中失败,我怎样才能让它工作呢?还有一个附属问题,为什么它发布在临时目录而不是目标位置?


版本信息:

  • Visual Studio Enterprise 2015 RC,版本 14.0.22823.1 D14REL
  • 我的项目使用 beta4 版本的 asp.net 框架
4

1 回答 1

16

此信息是 beta-8 的最新信息。

project.json文件允许您指定应为响应某些打包(DNX Utility/ dnu)事件而运行的脚本。在 Asp.Net 5 项目的默认 Visual Studio 模板中,该project.json文件指定了在您尝试发布应用程序时应运行的任何脚本:

"scripts": {
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
  }

在此示例中,当您尝试发布时将运行四个命令:npm installbower-install和。gulp cleangulp min

在大多数情况下,当prepublish任务失败是由于您的客户端构建过程中的错误(即在您的 gulpfile.js 中)。就我而言,这是因为我重命名了由 Visual Studio 模板创建的 gulp 任务,而没有更新project.json文件。当我尝试发布gulp min命令时,执行了命令,但min在我的 中没有找到任务gulpfile.js,导致错误。有关更多信息,请参阅此 Github问题

不幸的是,目前可以挂钩的可用事件的记录很差。我相信该prepare脚本已被重命名prepublish为 beta-6(请参阅此 Github问题)。我从 beta-8 收到的错误是:

“预发布”脚本失败,状态码为 1。

于 2015-10-30T02:01:17.183 回答