2011-02-01 19 views
-1

TeamCityを設定して、ASP.NET MVCアプリケーションをビルドおよびデプロイしようとしています。TeamCityの出力成果物がIIS7フォルダに公開されていません

TeamCity 4.5を使用している他のサーバーでもセットアップが正常に実行されていますが、新しいサーバーでTeamCity 6が実行されていますが、期待通りに動作しません。

TeamCityはソース管理からファイルを取得し、プロジェクト(Visual Studio Solution 2008の "ビルド")は必要なファイルをビルドして期待通りに出力します。この問題は、出力ファイルがWebサイトのフォルダにコピーされないため、アーティファクトのパスにあるようです。

私の解決策は十数個のプロジェクトで構成されていますが、そのうちの「Web」プロジェクトがこのケースでは興味深いものです。ビルドチェックアウトディレクトリはC:\ TeamCity \ buildAgent \ work \ 7da320cebf0ee541で、 "Web"プロジェクトはC:\ TeamCity \ buildAgent \ work \ 7da320cebf0ee541 \ Webにあります。

私はビルド設定を(チェックアウトディレクトリからWebサイトを含むフォルダに対して)以下のアーティファクトパス:

Web/bin=>../../../../inetpub/wwwroot/staging/bin 
Web/Content=>../../../../inetpub/wwwroot/staging/Content 
Web/Views=>../../../../inetpub/wwwroot/staging/Views 
Web/Media=>../../../../inetpub/wwwroot/staging/Media 
Web/*.aspx=>../../../../inetpub/wwwroot/staging 
Web/*.asax=>../../../../inetpub/wwwroot/staging 

(私は念のため../以上で試してみたが、それは違いはありませんでした)。

この

は、私は、ログ

[19時35分29秒]から取得出力さ:出版アーティファクト(1S) [19時35分29秒]:[出版アーティファクト] パスを公開するには: [Web/bin => ../../../../ inetpub/wwwroot/staging/bin、 Web/Content => ../../../../inetpub/ wwwroot/staging/Content、 Web/obj => ../../../../ inetpub/wwwroot/staging/obj、 Web/Views => ../../../../inetpub/ wwwroot /ステージング/ビュー、 Web/Media => ../../../../inetpub/ wwwroot/staging/Media、 Web/.aspx => ../../。 ./../inetpub/wwwroot/staging、Web/ .asax => ../../../../inetpub/ wwwroot/staging、teamcity-info.xml] [19:35:30]: [出版アーティファクト]ファイルに を送信[夜07時35分32秒]:チームシティー4.5を実行している他のサーバーの一部から完成

ログを作成し、公表されている成果物のそれぞれの行で、異なるフォーマットを使用していますこれが関連しているのか、別のログ形式なのかだけは分かりません。

すべてが動作しているようですが、ビルド後に私のウェブサイトフォルダにファイルが置かれていないと、ここに何か不足していますか?どんな助けでも大歓迎です:)

+0

私は、相対パスがチェックアウトディレクトリに基づいてはいけませんが、ビルドエージェントフォルダ( "../" x 8)助けてください。 –

+0

更新:アーティファクトを相対パス "出力"に出力すると、フォルダが作成され、ファイルが正しくコピーされます。この問題は、何らかの理由でファイルをinetpub/wwwroot/stagingフォルダにコピーできないようです。 –

答えて

1

私はいつもこの種のプロセスを処理するためにビルドスクリプトを使用しています。あなたはTC6を使用しているので、VS.NETソリューションビルダの後に2番目のビルドステップを追加できるはずです。コピー/移動を行います。 MSBuildはおそらくこれを行うためのスクリプト作成方法としては好ましいでしょうが、あなたがする必要があるのはコピーだけであれば簡単なコンソールランナーを使うことができます。スクリプト化されたアプローチを使用すると、展開ディレクトリに絶対パスを使用できるようになります。展開パスは相対パスほど壊れてはいけません。

+0

ありがとうございます。良い計画のように聞こえる。私はそれを処理し、それを二次構築ステップとして実行するためのスクリプトを設定します。 –

1

6.0以降、TeamCityでは、セキュリティ上の理由から、サーバーの成果物ディレクトリ外に成果物を公開することはできません。私はこれがあなたの事件だと思う。

サーバーログ(TeamCity/logs/teamcity-server.log)には、「ビルド成果物ディレクトリ外でアーティファクトをパブリッシュしようとしています」という警告が表示されます。

ファイルを特定の場所に公開したくない場合は、FTPなどでファイルを送信する別のビルドステップを作成することをお勧めします。

またAlbacorebuildを見ていないのはなぜhttp://youtrack.jetbrains.net/issue/TW-1558

関連する問題