如何从VS2015向ASP.NET部署ASP.NET 5 Aurelia应用程序

Ser*_*eit 10 azure-deployment visual-studio-2015 aurelia jspm asp.net-core

我正在尝试使用Visual Studio 2015中的Web部署([右键单击] - >发布)将基于ASP.NET 5 ES2016导航框架Aurelia应用程序部署到Microsoft Azure .

但我无法让解剖工作.

我已将文件中的prepublish设置更改project.json为:

"prepublish": [ "npm install", "gulp bundle" ]
Run Code Online (Sandbox Code Playgroud)

但这只会使Visual Studio中的发布过程失败.gulp bundle从控制台运行工作正常.

所以我的下一次尝试是删除所有prepublish任务,gulp bundle手动运行然后发布.这允许发布过程完成,但是azure上的web应用程序从不加载并最终给我一个超时.

认为它可能与jspm_packages我试过的文件夹有关,包括Web.xproj基于这个github线程的文件中的文件夹,但是这会导致以下错误:

502 - Web server received an invalid response while acting as a gateway or proxy server.
Run Code Online (Sandbox Code Playgroud)

更新

我已经尝试重新设置prepublish脚本并dnu publish从控制台运行.运行没有问题广告生成\bin\output\wwwroot文件夹中的所有必要输出.但是,当从Visual Studio中的Publish contect-menu操作运行时,同样的过程会失败; 没有生成输出.

只需将其添加到此处,以防它对问题有所了解.

更新2

好的,我注意到dnu publish命令的结束消息是

Using command 'web' as entry point for web.config
Run Code Online (Sandbox Code Playgroud)

然后一分钱掉了下来.Aurelia Skeleton Navigation解决方案在`project.json中定义了以下命令:

"web": "Microsoft.AspNet.Server.Kestrel --server.urls=http://*:9000/",
Run Code Online (Sandbox Code Playgroud)

这当然不适用于Azure.所以,我删除了--server.urls选项,prepublish再次删除脚本,然后看看project.json应用程序运行...

...分拆.

无论如何,自从开始输入这个问题以来已经发生了很多变化,但我仍然想知道:

  1. 当我prepublish定义任务时,为什么从Visual Studio发布失败?

  2. 最重要的是,我如何才能将捆绑的Aurelia应用程序发布到azure?

更新3

当控制台显示出来时,捆绑工作正常.我想--server.urls从删除设置后我从未尝试发布捆绑的应用程序project.json.

那么我们在哪里?

发布到Azure "prepublish": [ "gulp bundle" ]仍然失败.这是gulpfile.js Aurelia Navigation Skeleton附带的:

require('require-dir')('build/tasks');
Run Code Online (Sandbox Code Playgroud)

并且Visual Studio watch.js在运行prepublish任务时的以下行引发错误:

console.log(`File ${event.path} was ${event.type}, running tasks...`);  
Run Code Online (Sandbox Code Playgroud)

这是非常难以理解的,因为bundle 任务没有调用watch.永远.并运行gulp bundle从控制台按预期工作.

所以看起来VS2015正在加载build/tasks文件夹中的每个任务.我已经尝试watch.js 完全注释掉该文件,但后来我只出现以下错误:prepublish failed with code 1.

关于我为什么不能发布prepublish任务的任何帮助或想法将非常感激.

Sha*_*tin 1

要通过 Web 部署(右键单击 > 发布)将Aurelia ASP.NET 5 ES2016 导航框架发布到 Azure,我们必须对 project.json 进行两项更改。

添加一个预发布条目,该条目将安装 NPM 依赖项(否则 gulp 会失败)、安装 JSPM 包并与 gulp 捆绑在一起。

"prepublish": [ "npm install", "jspm install -y", "gulp bundle" ]
Run Code Online (Sandbox Code Playgroud)

从 Web 命令中删除--server.urls=http://*:9000/,因为 Azure 不支持该地址。这是正确的条目:

"web": "Microsoft.AspNet.Server.Kestrel"
Run Code Online (Sandbox Code Playgroud)

通过这两项更改,Web 部署可以使用 Visual Studio Community 2015 Update 2 部署到本地 IIS 和 Azure Web App。