Customizar proceso de compilación en Visual Studio (ej para quitar readonly)

Ejemplo:

Quitar atributo readonly de la solucion antes de empezar la compilación:

1. Editar el archivo

C:\Program Files (x86)\MSBuild\12.0\Bin\Microsoft.Common.CurrentVersion.targets

***si no deja modificarlo es porque el usuario no tiene permisos sobre este archivo. Editar las propiedades del archivo, luego ir a seguridad y agregar el usuario con permisos sobre el mismo***

2. Buscar el tag <Target Name="BeforeBuild" /> y sustituirlo por lo siguiente

<Target Name="BeforeBuild">
    <Message Text ="Hello World" />
    <Exec Command="calc.exe" />
</Target>

Esto es un ejemplo, cuando se compile un proyecto de .Net, en el output de la compilación aparecerá el mensaje Hello World, y se abrira la calculadora:

Target "BeforeBuild: (TargetId:3)" in file "C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets" from project "c:\temp\PruebaXX\PruebaXX\PruebaXX.csproj" (target "Build" depends on it):
Task "Message" (TaskId:4)
Task Parameter:Text=Hello World (TaskId:4)
Hello World (TaskId:4)
Done executing task "Message". (TaskId:4)


Ejemplo 2: Quitar atributo Readonly de la solución antes de iniciar la compilación

Editar el archivo

C:\Program Files (x86)\MSBuild\12.0\Bin\Microsoft.Common.CurrentVersion.targets

Sustituir
     <Target Name="BeforeBuild" />  
por
     <Target Name="BeforeBuild">  
<Exec Command="attrib -R $(SolutionDir)*.* /S" />  
     </Target>

Sustituir
     <Target Name="BeforeReBuild" />  
por
     <Target Name="BeforeRebuild">
<Exec Command="attrib -R $(SolutionDir)*.* /S" />
     </Target>

Sustituir
     <Target Name="BeforeCompile" />
por
     <Target Name="BeforeCompile">
<Exec Command="attrib -R $(SolutionDir)*.* /S" />  
     </Target>

Sustituir
     <Target Name="BeforeClean" />
por
     <Target Name="BeforeClean">
<Exec Command="attrib -R $(SolutionDir)*.* /S" />
     </Target>


En este link también hay ejemplos para ejecutar código C# dentro del xml

https://www.universalthread.com/ViewPageArticle.aspx?ID=61


No hay comentarios:

Publicar un comentario