Asp.net mvc Azure Git支持的连续部署的正确部署脚本

Asp.net mvc Azure Git支持的连续部署的正确部署脚本,asp.net-mvc,azure,typescript,azure-web-app-service,kudu,Asp.net Mvc,Azure,Typescript,Azure Web App Service,Kudu,我有一个ASP.NET4.5MVC应用程序,它使用Angular1.5。JS代码是Typescript,构建后操作构建JS代码并将其部署到我的应用程序引用的文件夹中 我的azure web应用程序上有一个插槽,它支持我的gitlab回购。提交到repo会触发部署,但是在更新bower/npm或typings库时(通过kudu控制台手动清除文件夹来解决),部署后构建似乎经常出现问题。是否有人提供了deploy.cmd脚本的示例,该脚本相当于 npm安装 打字装置 在管道中的正确位置,以便正确部

我有一个ASP.NET4.5MVC应用程序,它使用Angular1.5。JS代码是Typescript,构建后操作构建JS代码并将其部署到我的应用程序引用的文件夹中

我的azure web应用程序上有一个插槽,它支持我的gitlab回购。提交到repo会触发部署,但是在更新bower/npm或typings库时(通过kudu控制台手动清除文件夹来解决),部署后构建似乎经常出现问题。是否有人提供了deploy.cmd脚本的示例,该脚本相当于

  • npm安装
  • 打字装置
在管道中的正确位置,以便正确部署文件。 我想从一个新插槽开始,为了让现有插槽正常工作,过去我必须手动安装打字,例如
“npm install typings--global”
,以使构建正常工作,而不会出现打字错误

更新下面的输出 我猜下面的错误是由于azure在需要typescript>1.6的参考文件上运行typescript 1.6编译器造成的。 我的csproj拥有
2.0
(我从编译输出中删除了我的文件,但是_all.d.ts文件引用了下面的错误文件

  CompileTypeScript:
  D:\Program Files (x86)\Microsoft SDKs\TypeScript\1.6\tsc.exe  --sourcemap --target ES5 --noEmitOnError "REMOVED MY TYPESCRIPTFILES" "D:\home\site\repository\mymvcproject\app\src\_all.d.ts"
D:\home\site\repository\mymvcproject\typings\globals\angular\index.d.ts(1824,32): error TS1110: Build: Type expected. [D:\home\site\repository\mymvcproject\mymvcproject.csproj]
D:\home\site\repository\mymvcproject\typings\globals\angular\index.d.ts(1824,50): error TS1005: Build: ']' expected. [D:\home\site\repository\mymvcproject\mymvcproject.csproj]
D:\home\site\repository\mymvcproject\typings\globals\angular\index.d.ts(1824,58): error TS1005: Build: ',' expected. [D:\home\site\repository\mymvcproject\mymvcproject.csproj]
D:\home\site\repository\mymvcproject\typings\globals\angular\index.d.ts(1824,59): error TS1136: Build: Property assignment expected. [D:\home\site\repository\mymvcproject\mymvcproject.csproj]
D:\home\site\repository\mymvcproject\typings\globals\angular\index.d.ts(1941,1): error TS1128: Build: Declaration or statement expected. [D:\home\site\repository\mymvcproject\mymvcproject.csproj]
Done Building Project "D:\home\site\repository\mymvcproject\mymvcproject.csproj" (Build;pipelinePreDeployCopyAllFilesToOneFolder target(s)) -- FAILED.
最终更新 在typescript团队最终生成一个可以安装在Azure上的typescript 2.*版本之后,Kudu团队部署了它。现在整个过程都正常了!下面关于使用

"preinstall": "npm install typescript -g && npm install typings -g"

是解决方案的另一部分!

根据您的要求,您可以按照以下步骤实现您的目的

创建部署脚本

您可以登录到KUDU工具(https://.scm.azurewebsites.net/),单击“工具”>“下载部署脚本”。此外,您还可以利用azure cli生成脚本。有关如何通过azure cli生成部署脚本的更多详细信息,请参阅此

自定义部署脚本

要使用NPM管理包,可以在package.json文件中添加以下脚本

“脚本”:{
“预安装”:“npm安装类型脚本-g&&npm安装类型-g”
}
然后,需要将以下脚本添加到deploy.cmd文件中

如果存在“%DEPLOYMENT\u SOURCE%\package.json”(
pushd“%部署\源%”
echo安装npm包
调用:ExecuteCmd npm安装--生产
如果!ERRORLEVEL!NEQ 0转到错误
邻苯二胺
)
或者您可以添加以下脚本,通过命令行直接安装typescript和typings

echo安装打字脚本和打字
调用npm install typescript-g&&npm install typings-g
如果!ERRORLEVEL!NEQ 0转到错误

注意:.deployment、deploy.cmd文件需要放置在解决方案的根目录中。有关详细信息,您可以参考此项目。

根据您的要求,您可以按照以下步骤来实现您的目的

创建部署脚本

您可以登录到KUDU工具(https://.scm.azurewebsites.net/),单击“工具”>“下载部署脚本”。此外,您还可以利用azure cli生成脚本。有关如何通过azure cli生成部署脚本的更多详细信息,请参阅此

自定义部署脚本

要使用NPM管理包,可以在package.json文件中添加以下脚本

“脚本”:{
“预安装”:“npm安装类型脚本-g&&npm安装类型-g”
}
然后,需要将以下脚本添加到deploy.cmd文件中

如果存在“%DEPLOYMENT\u SOURCE%\package.json”(
pushd“%部署\源%”
echo安装npm包
调用:ExecuteCmd npm安装--生产
如果!ERRORLEVEL!NEQ 0转到错误
邻苯二胺
)
或者您可以添加以下脚本,通过命令行直接安装typescript和typings

echo安装打字脚本和打字
调用npm install typescript-g&&npm install typings-g
如果!ERRORLEVEL!NEQ 0转到错误

注意:需要将.deployment、deploy.cmd文件放置在解决方案的根目录中。有关详细信息,您可以参考此项目。

更新bower/npm或typings库时会出现什么问题?您可以提供部署失败的详细信息吗?您可以登录Azure Portal,选择web应用,单击应用部署>部署选项,单击失败的部署,单击部署详细信息刀片中的查看日志链接。我现在已删除插槽并重新创建。理想情况下,我需要一个模板,该模板不需要我手动运行命令以确保安装了打字。例如,下次遇到这些错误时,我将收到消息。也许s、 这些可以让你开始吗?@Bruce MSFT在一个新插槽之后,出现了相同的错误。我必须在控制台中手动运行npm install typescript-g和npm install typings-g,以防止出现错误,这些错误实际上是说无法识别的命令“typings”更新bower/npm或typings库时会出现什么问题?请提供有关部署失败的详细信息?您可以登录Azure Portal,选择web应用,单击应用部署>部署选项,单击部署失败,单击部署详细信息刀片中的查看日志链接。我现在已删除插槽,一个d重新创建。我理想情况下需要一个模板,该模板不需要我手动运行命令以确保安装了打字。例如,下次遇到这些错误时,我会收到消息。也许,这些可以让您开始吗?@Bruce MSFT在新插槽后出现相同错误。我必须手动运行npm install typescript-g和npm install typings-为了防止出现错误,控制台中显示了无法识别的命令“typings”,这非常有帮助