Obecnie zostałem skonfigurowany projekt wdrażania sieci Web, który kompiluje kod do folderu .\Release
. Po zakończeniu kompilacji chcę skopiować pliki na inny komputer (ponieważ katalog, w którym się tworzy, jest usuwany, a następnie ponownie tworzony).Projekt wdrażania sieci Web - kopiowanie plików po utworzeniu
ItemGroup za określenie, które pliki do skopiowania jest skonfigurowana w następujący sposób:
<ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<ReleaseFiles Include=".\Release\**\*" />
<OverrideFiles Include="..\website\App_Code\override\site.com\**\*" />
</ItemGroup>
„Witryna” to kod, który jest używany na wielu witrynach, więc istnieje kilka projektów Web Deployment utworzone w roztworze.
Wtedy, mam cel AfterBuild skopiować pliki:
<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>
Jednak ReleaseFiles nie są kopiowane, co może być przyczyną tego? Miałem błąd .\TempBuildDir\folder\subfolder - The process cannot access the file because it is being used by another process.
, gdzie folder\subfolder
może być za każdym razem inny, ale nawet gdy ta wiadomość nie pojawi się, pliki nadal nie są kopiowane.
Problem polega na tym, że zadziałało wcześniej.
Czy CreateItem znajduje się w ItemGroup lub Target? – SamWM
Powinieneś umieścić go w celu 'AfterBuild', przed zadaniami kopiowania. –
Naprawiłem to dla mnie. – SamWM