我想避免在AfterClean目標中對dll和文件夾名稱進行硬編碼,是否有動態的方式來執行此操作?理想情況下,它只會刪除AfterBuild目標中由副本創建的文件和文件夾。從AfterBuild目標中刪除複製的文件和文件夾
我試圖通過更改DestinationFolder在OutputPath中包含一個子目錄來簡化此操作。 AfterClean目標只需要在此時刪除該子目錄。但是,某些庫的DLLImport路徑不會考慮導致崩潰的子目錄。
<?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>
項目結構:
SRC
ConsumingProject
- ConsumingProject.csproj
Consumin gProject.sln
包
我-project.5.7.0.12
構建
LIB
本地
插件
- VenusDvc.dll
SPM
- sSPM_1.bin
LumiAPI。 dll的
LumiCore.dll
LumiInOpAPI.dll
net45
我-project.5.7.0.12。nupkg
基本上我想刪除所有來自本地文件夾複製到項目的輸出文件和文件夾(即LumiAPI.dll,LumiCore.dll,SPM(文件夾),eSPM_1.bin等)。但是我希望它足夠通用,這樣如果我將其他文件夾添加到本機目錄,它也會刪除這些文件夾/文件。
我收到錯誤「Unable to remove directory」bin \ Debug \\「。訪問路徑'HTA.vshost.exe'被拒絕。」它不應該刪除調試文件夾 – Robert
請編輯您的問題,以澄清a)你的目錄結構是什麼和b)你想要刪除的是什麼。 – stijn
我更新了我的問題 – Robert