Actuellement, j'ai configuré un projet de déploiement Web qui compile le code dans le dossier .\Release
. Après la construction je veux copier les fichiers sur une autre machine (parce que n'importe quel répertoire que vous construisez est supprimé puis recréé).Projet de déploiement Web - Copie de fichiers après la création
Le ItemGroup pour définir les fichiers à copier est configuré comme suit:
<ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<ReleaseFiles Include=".\Release\**\*" />
<OverrideFiles Include="..\website\App_Code\override\site.com\**\*" />
</ItemGroup>
« site » est le code qui est utilisé pour plusieurs sites, donc il y a plusieurs projets de déploiement Web mis en place au sein de la solution.
Ensuite, j'ai la cible de AfterBuild pour copier les fichiers:
<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>
Cependant, les ReleaseFiles ne sont pas copiés, ce qui peut être la cause de cela? J'ai eu l'erreur .\TempBuildDir\folder\subfolder - The process cannot access the file because it is being used by another process.
où folder\subfolder
peut être différent à chaque fois, mais même si ce message n'apparaît pas, les fichiers ne sont toujours pas copiés.
Le problème est, il a travaillé auparavant.
Est-ce que CreateItem va sous ItemGroup ou Target? – SamWM
Vous devriez le mettre dans la cible 'AfterBuild', avant les tâches de copie. –
Qui l'a fixé pour moi – SamWM