visual tutorial studio personalizar para mejores las iconos fuente extensiones español configurar code cambiar visual-studio-2010 msbuild

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