visual terminen studio revirtiendo retrasa restaurarse restaurar referencia que proyecto paquetes paquete los instalar hasta hace faltan este error equipo encuentra elemento declarado correctamente compilación cambios msbuild

msbuild - terminen - no se ha declarado el elemento packages



Cómo borrar todos los archivos y carpetas con msbuild (4)

¿Cómo puedo eliminar todos los archivos y carpetas de una ruta determinada?

Intenté esto, pero no puedo seleccionar los directorios.

<Target Name="CleanSource" Condition="$(path)!=''''"> <Message Text="path=$(path)"/> <ItemGroup> <fileToDelete Include="$(path)/**/*.*" /> <directoryToDelete Include="$(path)/**/" /><!these doest not select any directory at all--> </ItemGroup> <Message Text="file to delete:@(fileToDelete)"/> <Message Text="directory to delete:@(directoryToDelete)"/> <Delete Files="@(fileToDelete)" /> <Message Text="file effectively deleted:@(DeletedFiles)"/> <RemoveDir Directories="@(directoryToDelete)" /> <Message Text="Directory effectively deleted:@(RemovedDirectories)"/> </Target>


Estoy llegando a esta conversación un poco tarde, pero encontré que la forma más fácil de lograr esto era usar la tarea Exec para ejecutar el comando por lotes dado por lain en respuesta a una pregunta similar (con ediciones menores por parte de usted):

<Exec Command="FOR /D %%p IN (&quot;$(path)*.*&quot;) DO rmdir &quot;%%p&quot; /s /q" />


Finalmente usé PowerShell, que es mucho más rápido:

<exec> <executable>powershell.exe</executable> <buildArgs><![CDATA[-command "& {if( [System.IO.Directory]::Exists($pwd) ){dir $pwd | ri -recurse -force}}"]]></buildArgs> </exec>


La tarea RemoveDir elimina los directorios especificados y todos sus archivos y subdirectorios. No es necesario eliminar primero los archivos y subdirectorios. Simplemente pase el nombre del directorio a RemoveDir.

<ItemGroup> <DirsToClean Include="work" /> </ItemGroup> <Target Name="CleanWork"> <RemoveDir Directories="@(DirsToClean)" /> </Target>


Si bien hay maneras de construir esto usando solo MSBuild, recomiendo altamente el paquete de extensión de MSBuild.

http://msbuildextensionpack.codeplex.com/ [se ha movido]
GitHub: MSBuildExtensionPack

Al utilizar el paquete, obtiene una tarea RemoveContent que hace exactamente lo que necesita. Una vez que instales, simplemente harás algo como:

<MSBuild.ExtensionPack.FileSystem.Folder TaskAction="RemoveContent" Path="$(PathtoEmpty)"/>