Сбой публикации в Visual Studio 2015 с сообщением: Сбой сценария «подготовка» с кодом состояния -1073741819.

При публикации моего проекта asp.net 5 выходной каталог остается пустым, и я получаю сообщение об ошибке: «Сбой сценария подготовки с кодом состояния -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.

person Daniel    schedule 15.07.2015    source источник


Ответы (1)


Эта информация актуальна на момент бета-8.

Файл project.json позволяет указать сценарии, которые должны запускаться в ответ на определенные события упаковки (DNX Utility/dnu). В шаблонах Visual Studio по умолчанию для проектов Asp.Net 5 файл project.json указывает все сценарии, которые должны выполняться при попытке опубликовать приложение:

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

В этом примере при попытке публикации будут запущены четыре команды: npm install, bower-install, gulp clean и gulp min.

В большинстве случаев, когда задача prepublish не выполняется, это происходит из-за ошибки в процессе сборки на стороне клиента (т. е. в вашем файле gulpfile.js). В моем случае это произошло потому, что я переименовал задачу gulp, созданную шаблоном Visual Studio, без обновления файла project.json. Когда я попытался опубликовать, команда gulp min была выполнена, но задача min не была найдена в моей gulpfile.js, что привело к ошибке. Подробнее см. в этой проблеме на Github.

К сожалению, доступные события, к которым можно подключиться, в настоящее время плохо документированы. Я полагаю, что скрипт prepare с тех пор был переименован в prepublish начиная с бета-6 (см. этот Github issue). Ошибка, которую я получил от бета-8:

Сценарий предварительной публикации завершился с ошибкой с кодом состояния 1.

person Blake Mumford    schedule 30.10.2015