2012-01-09 9 views
1

MSBuildスクリプトを実行してプロジェクトをコンパイルし、TeamCityの一般設定でアーティファクトパスを設定します。私のMSBuildスクリプトは、まずzipファイルをビルドして作成します。私はアーティファクトとしてそのzipファイルを追加したいと思いますが、私はチームシティーでビルドを実行したときに私はこのエラーを取得:Teamcityでアーティファクトのコピーが遅延する

[17:44:56]: [CreateNightlyZip] Zip 
[17:44:56]: [Zip] C:\BuildAgent\Build\Build.proj(55, 5): The process cannot access the file 'C:\BuildAgent\work\c13cf8f192b25cd1\bin\Debug\20120109_Foo.PE.zip' because it is being used by another process. 

チームシティーは、zipファイルをつかむしようとしたようなので、それはその作成した右ときlookes、その後、私のMSBuildスクリプトがファイルをそこに置くことができません。ここで

は、MSBuildのターゲットである:

<Target Name="CreateNightlyZip"> 
    <PropertyGroup> 
     <StringDate>$([System.DateTime]::Now.ToString('yyyyMMdd'))</StringDate> 
    </PropertyGroup> 
    <ItemGroup> 
     <DebugApplicationFiles Include="$(DebugPath)\**\*.*" Exclude="$(DebugPath)\*vshost.exe*" /> 
    </ItemGroup> 
    <MakeDir Directories="$(NightlyBuildPath)"/> 
    <Zip Files="@(DebugApplicationFiles)" 
     WorkingDirectory="$(DebugPath)" 
     ZipFileName="$(NightlyBuildPath)\$(StringDate)_$(NightlyZipName).zip" 
     ZipLevel="9" /> 
    </Target> 

は誰がallsoこの問題を抱えているか、このためのソリューションがどうあるべきか?

EDIT:チェックアウトフォルダのルートにzipファイルを作成すると、すべてがうまく動作しますが、デバッグフォルダに作成するとこのエラーが発生します。

答えて

1

私がやったことは、作成した.zipファイルをデバッグフォルダに入れて、プロジェクトのルートフォルダに配置しないことでした。 zipファイルが作成され、Teamcityがそれをアーティファクトとして使用できることを確認します。

2

TeamCityはすべてのビルドステップが完了したとき、つまりMSBuildスクリプトが終了したときにのみ成果物をパブリッシュします。あなたはアーティファクトが準備ができているとき、ビルドスクリプトから特別なサービス・メッセージを生成する必要がビルド中にアーティファクトを公開する

:あなたがサービスメッセージを使用しない場合http://confluence.jetbrains.net/display/TCD65/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-PublishingArtifactswhiletheBuildisStillinProgress

、あなたはファイルをロックしているプロセスを確認する必要があります。たぶん、同じマシン上に同時に2つのエージェントをビルドしてお互いに干渉しているのでしょうか?

+0

実行中の第2エージェントはありません。元の投稿のEDITをご覧ください。 – hs2d

関連する問題