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 
)