2017-02-21 6 views
1

Azure上のテストサーバーへの継続的な展開を設定しようとしています。このアプリケーションはASP.Netアプリケーションですが、この場合はそれほど重要ではありません。Azure AppService間違ったファイルを使用してdeploy.cmd

私のビルドプロセス(チーム都市)は、展開に必要なすべてのもの(一部の接続文字列情報を除く)を持つフォルダを生成します。あなたがそのディレクトリにIISを指している場合、それは素晴らしい動作します。 AzureにそのディレクトリをFTPで転送しても動作します。

私はこれらのビルドを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'). 

をそして、それはいくつかを実行しますジェネリック自動生成されたdeploy.cmd。

キャッシュからdeploy.cmdを削除すると、一般的なものが再生成されます。

そして、最も重要なことは、このすべてを行うことで、間違ったアセンブリが展開されていることです!!

私のアプリはSystem.Web.Helpers.dllに依存しています。このDLLの正しいバージョンはgithubにあります。私はこれを複数回検証しました。

しかし、KuduはNuGetからOLDERを取得して展開しています。もちろん、そのファイルをロードできないという恐ろしいYSODエラーが発生します。

Kuduを私のgithubリポジトリからwwwrootだけにコピーするには何が必要ですか?

答えて

1

kuduにある\home\site\deployments\tools\deploy.cmdにある自動生成されたdeploy.cmdファイルを手動で編集して展開しています。 DEPLOYMENT_SOURCEからクーズーの同期を実行するための第三のセクションを

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

(あまりにも、それらの下にすべてのコードをコメントアウト)

そして手で編集された:2のラインを自動生成から、私はコメントし

このような一時ファイルの代わりに

:: 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 
) 
関連する問題