Ich möchte vermeiden, hart die DLL-und Ordner-Namen in der AfterClean-Ziel codieren, gibt es eine dynamische Möglichkeit, dies zu tun? Idealerweise löscht es nur die Dateien und Ordner, die durch das Kopieren im AfterBuild-Ziel erstellt wurden.Entfernen von Dateien und Ordnern kopiert von AfterBuild Target
Ich habe versucht, dies zu vereinfachen, indem ich den DestinationFolder so ändere, dass er ein Unterverzeichnis im OutputPath enthält. Das AfterClean-Ziel müsste das Unterverzeichnis zu diesem Zeitpunkt nur entfernen. Einige DLLImport-Pfade der Bibliothek berücksichtigen dieses Unterverzeichnis jedoch nicht, was zu einem Absturz führt.
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="AfterBuild">
<ItemGroup>
<NativeLibs Include="$(MSBuildThisFileDirectory)..\lib\native\**\*.*" />
</ItemGroup>
<Copy SourceFiles="@(NativeLibs)" DestinationFolder="$(OutputPath)\%(RecursiveDir)" />
</Target>
<Target Name="AfterClean">
<Delete Files="$(OutputPath)\LumiAPI.dll" />
<Delete Files="$(OutputPath)\LumiCore.dll" />
<Delete Files="$(OutputPath)\LumiInOpAPI.dll" />
<RemoveDir Directories="$(OutputPath)\SPM" />
<RemoveDir Directories="$(OutputPath)\plugin" />
</Target>
</Project>
Projektstruktur:
src
ConsumingProject
- ConsumingProject.csproj
Consumin gProject.sln
Pakete
my-project.5.7.0.12
build
lib
nativen
Plugin
- VenusDvc.dll
SPM
- sSPM_1.bin
LumiAPI. dll
LumiCore.dll
LumiInOpAPI.dll
net45
my-project.5.7.0.12.nupkg
Grunde möchte ich alle Dateien und Ordner löschen, die aus dem nativen Ordner mit dem Ausgang des Projekts (dh LumiAPI.dll, LumiCore.dll, SPM (Ordner kopiert wurden), eSPM_1.bin usw.). Ich möchte jedoch, dass es generisch genug ist, so dass, wenn ich einen anderen Ordner zum nativen Verzeichnis hinzufüge, es auch diese Ordner/Dateien löschen würde.
Ich bekomme den Fehler "Kann Verzeichnis nicht entfernen" bin \ Debug \\ ". Der Zugriff auf den Pfad 'HTA.vshost.exe' wird verweigert.". Es sollte nicht den Debug-Ordner entfernen – Robert
Bitte bearbeiten Sie Ihre Frage, um zu klären, a) was Ihre Verzeichnisstruktur ist und b) was genau Sie löschen möchten. – stijn
Ich habe meine Frage aktualisiert – Robert