目前我已經建立了一個Web部署項目,它將代碼編譯到.\Release
文件夾中。生成後,我想將文件複製到另一臺機器上(因爲無論您構建的目錄是刪除還是重新創建)。Web部署項目 - 在生成後複製文件
的的ItemGroup用於定義要複製的文件被設置如下:
<ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<ReleaseFiles Include=".\Release\**\*" />
<OverrideFiles Include="..\website\App_Code\override\site.com\**\*" />
</ItemGroup>
「網站」是用於多個網站的代碼,所以有解決方案中設置了多個Web部署項目。
然後,我有AfterBuild目標要複製的文件:
<Target Name="AfterBuild" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Copy SourceFiles="@(ReleaseFiles)" ContinueOnError="true" SkipUnchangedFiles="true" DestinationFiles="@(ReleaseFiles->'\\server\web\site.com\%(RecursiveDir)%(Filename)%(Extension)')" />
<Copy SourceFiles="@(OverrideFiles)" DestinationFiles="@(OverrideFiles->'\\server\web\site.com\%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
然而,ReleaseFiles不會被複制,有什麼可以成爲其中的原因是什麼?我有錯誤.\TempBuildDir\folder\subfolder - The process cannot access the file because it is being used by another process.
其中folder\subfolder
可以每次都不同,但即使該消息不出現,文件仍然不會被複制。
問題是,它已經工作過。
CreateItem是否在ItemGroup或Target下? – SamWM 2009-10-08 12:00:25
你應該把它放到'AfterBuild'目標中,在Copy任務之前。 – 2009-10-08 12:01:44
爲我修好了 – SamWM 2009-10-08 14:29:24