Hiện tại tôi đã thiết lập Dự án triển khai web để biên dịch mã vào thư mục .\Release
. Sau khi xây dựng tôi muốn sao chép các tập tin trên một máy khác (vì bất kỳ thư mục bạn xây dựng để xóa sau đó được tái tạo).Dự án triển khai Web - Sao chép tệp sau khi tạo
Các ItemGroup để xác định những file nào để copy được thiết lập như sau:
<ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<ReleaseFiles Include=".\Release\**\*" />
<OverrideFiles Include="..\website\App_Code\override\site.com\**\*" />
</ItemGroup>
'trang web' là mã được sử dụng cho nhiều trang web, vì vậy có một số dự án triển khai web thiết lập trong giải pháp.
Sau đó, tôi có mục tiêu AfterBuild để sao chép các tập tin:
<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>
Tuy nhiên, ReleaseFiles không được sao chép, những gì có thể là nguyên nhân của điều đó không? Tôi đã gặp lỗi .\TempBuildDir\folder\subfolder - The process cannot access the file because it is being used by another process.
trong đó folder\subfolder
có thể khác nhau mỗi lần, nhưng ngay cả khi thông báo đó không xuất hiện các tệp vẫn không được sao chép.
Vấn đề là, nó đã hoạt động trước đó.
CreateItem có nằm trong ItemGroup hoặc Target không? – SamWM
Bạn nên đặt nó vào mục tiêu 'AfterBuild', trước nhiệm vụ Sao chép. –
Điều đó đã sửa nó cho tôi – SamWM