-
Notifications
You must be signed in to change notification settings - Fork 21
Description
Hello,
we have a visual studio project, consisting of many different assemblies (>30) together with some binary files. The assemblies are normal nuget packages or referenced projects. However, the approx. 50 binary files get loaded from a nuget packet and get copied via Nuget Output (version 2.3.0) into our bin\debug directory. Furthermore we have thousands of log files within that folder that get created, when running/debugging the visual studio project.
Whenever we clean now out project, nuget output tries to remove all files it copied before. Thereby it seams that it can not find the *.dummy files. As a result it seams like VS is searching through the whole \bin\debug directory. So it searches for every single binary file added by Nuget.Output through thousands of files/folders.
It sums up to about 15 seconds for every project that contains this many log files together with a package referencing NugetOutput.
I suspect, this might be related to the following line:
Contrib.Nuget/Baseclass.Contrib.Nuget.Output/build/net40/Baseclass.Contrib.Nuget.Output.targets
Line 30 in 2c31239
| <RemoveDir Condition="'@(EmptyCheck)' == '' And '%(NugetOutputFiles.RecursiveDir)' != ''" Directories="$(OutDir)%(NugetOutputFiles.RecursiveDir)" /> |
Do you know any kind of fix, or do you have a better solution? Do you really need to iterate over every file within bin\debug?
Thank you in advance!
Edit: The build jobs 'Clean' theirby shows on highest log level the following Output (for every nuget-output binary):
46>Building target "CleanEmptyFolder" completely.
46>Output file "....MyBinary1.bin.Dummy" does not exist.
46>Task "RemoveDir" skipped, due to false condition; ('@(EmptyCheck)' == ''' AND '%(NugetOutputFiles.RecursiveDir)'!='') was evealuated as ('bin\debug\file1.abc;bin\debug\LogFolder1\log\Today\Afternoon\theLogFile.txt; [... I shortened the >1.000.000 char long line here...]')