Azure AppService使用错误的文件deploy.cmd
我正在尝试将配置连续部署到Azure上的测试服务器。该应用程序是一个ASP.Net应用程序,但在这种情况下,这应该无关紧要。Azure AppService使用错误的文件deploy.cmd
我的构建过程(团队城市)生成一个文件夹,其中包含部署所需的所有内容(减去一些连接字符串信息)。如果你指向那个目录的IIS,它的效果很好。如果您将该目录FTP到Azure,它也可以工作。
我正在跟踪这些构建中的每个构建,并将它们推送到Github。所以我尝试使用Azure部署选项从github进行部署。一切都在git中。包含/ bin文件夹。
Kudu应该不需要做任何事情,只需从git中拉出并将所有文件复制到wwwroot。
所以,我已经把我的.deployment文件是这样的:
[config]
project = .
每次我这样做,虽然,部署给我的留言:
Using cached version of deployment script (command: 'azure -y --no-dot-deployment -r "D:\home\site\repository" -o "D:\home\site\deployments\tools" --aspWAP "D:\home\site\repository\MyProj.csproj" --no-solution').
,它运行一些通用自动生成的deploy.cmd。
如果我从缓存中删除了deploy.cmd,它会重新生成一些通用的。
而且,最重要的是,在做所有这些工作时,错误组装正在部署中!
我的应用依赖于System.Web.Helpers.dll。这个DLL的正确版本在github中。我已多次验证过这一点。
然而,Kudu正在从NuGet中获取一个OLDER并将其部署。当然,我也遇到了无法加载该文件的可怕YSOD错误。
我需要做些什么才能让Kudu将文件从我的github存储库复制到wwwroot,而不是其他任何东西?
我最终通过手工编辑生成在kudu的\home\site\deployments\tools\deploy.cmd
的自动生成的deploy.cmd文件。
我注释的2个自动生成行:
:: 1. Restore NuGet packages
:: 2. Build to the temporary path
(注释所有的它们下面的代码,太)
然后手工编辑的第三部分从DEPLOYMENT_SOURCE运行捻同步而不是像这样的临时文件:
:: 3. KuduSync
IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" (
call :ExecuteCmd "%KUDU_SYNC_CMD%" -v 50 -f "%DEPLOYMENT_SOURCE%" -t "%DEPLOYMENT_TARGET%" -n "%NEXT_MANIFEST_PATH%" -p "%PREVIOUS_MANIFEST_PATH%" -i ".git;.hg;.deployment;deploy.cmd"
IF !ERRORLEVEL! NEQ 0 goto error
)