azure appservice deploy.cmd使用错误的文件

eoxn13cs  于 2021-06-20  发布在  Kudu
关注(0)|答案(1)|浏览(314)

我正在尝试将连续部署配置到azure上的测试服务器。该应用程序是一个asp.net应用程序,但在本例中,这并不重要。
我的构建过程(TeamCity)生成一个文件夹,其中包含需要部署的所有内容(减去一些连接字符串信息)。如果你把iis指向那个目录,它会工作得很好。如果你将这个目录ftp到azure上,它也可以工作。
我在git中跟踪每个构建,并将它们推送到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').

它运行一些通用的autogenerated deploy.cmd。
如果我从缓存中删除deploy.cmd,它会重新生成一些通用的命令。
而且,最重要的是,在执行所有这些操作时,部署了错误的程序集!!
我的应用程序依赖于system.web.helpers.dll。github中有此dll的正确版本。我已经验证过多次了。
然而,kudu正在从nuget抓取一个旧的并部署它。当然,我也会遇到一个可怕的ysod错误,就是无法加载那个文件。
我需要做什么才能让kudu将文件从我的github存储库复制到wwwroot而不是别的?

7fhtutme

7fhtutme1#

最后,我手工编辑了autogenerated deploy.cmd文件来部署它 \home\site\deployments\tools\deploy.cmd 在Kudu。
我注解掉了自动生成的两行:

:: 1. Restore NuGet packages
:: 2. Build to the temporary path

(也注解掉了它们下面的所有代码)
然后手动编辑第3部分,从部署源运行kudu sync,而不是像这样运行temp文件:

:: 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
)

相关问题