Cómo hacer que Visual Studio ejecute MsBuild InitialTargets (o compile un proyecto) al cargar un proyecto

Introducción

Estoy buscando un punto de extensión "ejecutar cuando VS está cargando un proyecto". Esto también debe ser incorporable en una ejecución de compilación desde fuera de VS. Esto significa que debería terminar en los scripts de msbuild.

MSBuild InitialTargets

Ahora he descubierto que MSBuild ofrece un punto de extensión para ejecutar un objetivo antes de que se ejecute cualquier otro: el<Project InitialTargets="..."/>. Esto se adapta perfectamente a mi necesidad de construir un servidor de consola / compilación. Sin embargo, con Visual Studio, preferiría que también ocurriera (adicionalmente) cuando VS carga la solución también. Así que he verificado si este es el caso: Sí y No. Cuando importo el siguiente proyecto en mi*.csproj's:

  <Target Name="TestOnStart">
      <Warning Text="Hey $(MSBuildProjectName) is being initialised"/>
  </Target>

Después de cargar la solución en VS, la advertenciahace aparecer poralgunos proyectos, pero no para todos.

Preguntas

¿Cómo puedo hacer que VS ejecute elInitialTargets en cada carga?

O tal vez pueda ayudarme a responder esto, permitiéndome encontrar una solución yo mismo ;-):

¿Cómo VS determina si ejecutar una compilación o ejecutar elInitialTargets al cargar un proyecto?¿Cómo puedo influir en esto?

Gracias :)

Apéndice:

Acabo de notar que si cambio uno de los proyectos de la solucióncsproj archivo externo, VS me preguntará si quiero volver a cargar el proyecto. Si elijo "recargar todos los proyectos", ejecutará elInitialTargets de todos los proyectos Entonces, tal vez esto tenga que ver con el almacenamiento en caché o similar. Entonces, la solución a mi problema podría implicar hacer que VS crea que algo en el proyecto cambió (al / antes de cargar la solución).

Respuestas a la pregunta(0)

Su respuesta a la pregunta