Derzeit habe ich ein Web-Bereitstellungsprojekt eingerichtet, das Code in den Ordner .\Release
kompiliert. Nach dem Build möchte ich die Dateien auf einen anderen Computer kopieren (da das Verzeichnis, in dem Sie es erstellen, gelöscht und dann neu erstellt wird).Web-Bereitstellungsprojekt - Dateien nach Erstellung kopieren
Die ItemGroup für die definiert, welche bis zu kopieren Dateien wie folgt festgelegt:
<ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<ReleaseFiles Include=".\Release\**\*" />
<OverrideFiles Include="..\website\App_Code\override\site.com\**\*" />
</ItemGroup>
‚Webseite‘ ist Code, der für mehrere Standorte verwendet wird, so gibt es in der Lösung mehrere Web-Bereitstellungsprojekte einzurichten.
Dann habe ich das Ziel Afterbuild die Dateien zu kopieren:
<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>
Allerdings sind die ReleaseFiles nicht kopiert, was die Ursache dafür sein können? Ich habe den Fehler .\TempBuildDir\folder\subfolder - The process cannot access the file because it is being used by another process.
gehabt, wo folder\subfolder
jedes Mal unterschiedlich sein kann, aber selbst wenn diese Nachricht nicht erscheint, werden die Akten noch nicht kopiert.
Problem ist, es hat vorher funktioniert.
Geht CreateItem unter ItemGroup oder Target? – SamWM
Sie sollten es in das 'AfterBuild'-Ziel vor den Kopieraufgaben einfügen. –
Das hat es für mich behoben – SamWM