0

TeamCity に、プロジェクト ファイルをビルドし、プロジェクトをネットワーク上の場所にデプロイするビルド ステップがあります。//サーバー/システム/ウェブ

Web フォルダーが存在しない場合、デプロイは正常に機能しますが、Web フォルダーが既に存在する場合、Web フォルダーは削除されるだけで、ビルドは失敗します。

設定する必要があるフラグはありますか? msbuild はコンテンツを置き換えるだけです。展開する前に、フォルダーからすべてのコンテンツを削除する PowerShell スクリプトも検討しましたが、これは実行可能なソリューションですか?

ログ:

[12:20:18][MSBuild 出力] CopyAllFilesToSingleFolderForMsdeploy:

[12:20:18][MSBuild の出力] ディレクトリ "\server\system\web" を作成しています。

[12:20:18][MSBuild の出力] パッケージ/公開用にすべてのファイルを以下の一時的な場所にコピーしています:

[12:20:18][MSBuild 出力] \server\system\web.

[12:20:18][MSBuild 出力] bin\Dokumentproduksjon.Web.dll を \server\system\web\bin\Dokumentproduksjon.Web.dll にコピーしています。

[12:20:18][MSBuild 出力] \server\system\web\bin フォルダーの作成に失敗しました。パス '\server\system\web\bin' へのアクセスが拒否されました。

[12:20:18][MSBuild output] Done Building Project "C:\TeamCity\buildAgent\work\ac656796ad82c0\Dokumentproduksjon.Web\Dokumentproduksjon.Web.csproj.teamcity" (Build;Package target(s)) -- FAILED .

[12:20:18][MSBuild の出力]

[12:20:18][MSBuild 出力] ビルドに失敗しました。

4

1 に答える 1

0

これは本番環境またはテスト環境へのデプロイですか?

プロダクションの場合、コンテンツを提供しているためロックされている可能性はありますか? IIS / Apache はコンテンツを提供していますか?

それがテスト環境にある場合、同じことが当てはまる可能性があります。ホストされていないことを確認しましたか? 通常、理想的な状況は、新しい環境であるかのように展開していることを確認して、クリーンな仮想マシンに展開することです。webこれにより、既に存在するフォルダーの問題を回避できます。その余裕がない場合は、最初にこの環境をクリーンな環境に模倣するスクリプトを実行する必要があるため、そのフォルダーを削除するコマンドが必要になります。ただし、前のコメントに戻ると、何かがそのフォルダーにファイル ロックを持っている場合、コマンドも失敗します。

于 2013-06-21T15:26:21.727 に答える