visual-studio-2010 - tutorial - visual studio code español
Antes y AfterBuild Target en Visual Studio no se activan (2)
Tus eventos de compilación se activan, simplemente no los ves en Visual Studio.
Por defecto VS establece la verbosidad de msbuild a minimal
. Puede mostrar su mensaje cambiando la importancia del mensaje a high
<Target Name="BeforeBuild">
<Message Text="### BeforeBuild ###" Importance="high" />
</Target>
<Target Name="AfterBuild">
<Message Text="### AfterBuild ###" Importance="high" />
</Target>
También puede cambiar la configuración de verbosidad en VS en Herramientas-> Opciones luego en Proyectos y soluciones-> Crear y ejecutar.
Estoy haciendo lo siguiente:
- Creé un proyecto de archivo de clase predeterminado
- Editado el archivo csproj para incluir Pre y Post BuildEvents
- Descomente los destinos predeterminados comentados BeforeBuild y AfterBuild
Los destinos BeforeBuild y AfterBuild no se llaman formulario dentro de Visual Studio, pero son de la línea de comandos de msbuild, ¿por qué?
Preferiría utilizar objetivos msbuild en lugar de PostBuildEvent, ya que me da más poder y flexibilidad, suponiendo que funcione.
Aclamaciones,
Adán
Acorté algunas de las rutas en la salida, por lo que si son inconsistentes es por eso
Cambios de ClassLibrary1.csproj
<Import Project="$(MSBuildToolsPath)/Microsoft.CSharp.targets" />
<Target Name="BeforeBuild">
<Message Text="### BeforeBuild ###" />
</Target>
<Target Name="AfterBuild">
<Message Text="### AfterBuild ###" />
</Target>
<PropertyGroup>
<PreBuildEvent>echo PRE_BUILD</PreBuildEvent>
</PropertyGroup>
<PropertyGroup>
<PostBuildEvent>echo POST_BUILD</PostBuildEvent>
</PropertyGroup>
mi producción de compilación de VS 2010 es
------ Rebuild All started: Project: ClassLibrary1, Configuration: Debug Any CPU ------
PRE_BUILD
ClassLibrary1 -> c:/ClassLibrary1/bin/Debug/ClassLibrary1.dll
POST_BUILD
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
y desde la línea de comando
#>msbuild ClassLibrary1.sln
Microsoft (R) Build Engine Version 4.0.30319.1
[Microsoft .NET Framework, Version 4.0.30319.239]
Copyright (C) Microsoft Corporation 2007. All rights reserved.
Build started 09/05/2012 13:27:42.
Project "c:.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
Building solution configuration "Debug|Any CPU".
Project "c:.sln" (1) is building "c:/ClassLibrary1.csproj" (2) on node 1 (default targets).
BeforeBuild:
### BeforeBuild ###
PreBuildEvent:
echo PRE_BUILD
PRE_BUILD
GenerateTargetFrameworkMonikerAttribute:
Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
CoreCompile:
Skipping target "CoreCompile" because all output files are up-to-date with respect to the input files.
CopyFilesToOutputDirectory:
ClassLibrary1 -> c:/bin/Debug/ClassLibrary1.dll
PostBuildEvent:
echo POST_BUILD
POST_BUILD
AfterBuild:
### AfterBuild ###
Done Building Project "c:/ClassLibrary1.csproj" (default targets).
Done Building Project "c:.sln" (default targets).
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:00.18
Solo para otros ayuda, cuando se encuentran con un problema similar, pero la razón podría ser diferente. Si importa después del objetivo, entonces AfterBuild puede no funcionar.
Asegúrate de que toda la importación que tengas sea anterior a la definición del objetivo, la definición del objetivo debe estar al final