Tengo un interés en msbuild esta semana. Estoy limpiando muchos scripts de compilación extremadamente complejos. Indagar me sorprende con lo mucho que puede hacer: msbuild es una característica oculta de la programación de .NET en sí misma.Funciones ocultas de msbuild
En la convención SO que las preguntas deben tener respuestas, en unos días o una semana, marcaré las características ocultas más útiles o más geniales tal como se aceptaron.
let bestAnswer suprise slick useful = (surprise + slick + 2*useful)
Definición de utilidad: Estoy actualizar los scripts existentes msbuild que: paquete (archivos zip) sitios web y los servicios públicos, la integración CC.NET, pruebas de lanzamiento (UT + selenio), construir bases de datos. Estoy agregando (nuevos objetivos, incluso más útiles): despliegue en servidores virtuales VMWare, construcciones encadenadas (compilación rápida de forma inmediata, pruebas lentas en cola). Si se refiere a una biblioteca externa (como MSBuild community tasks), sería bueno saber cómo obtenerla.
Algunas sorpresas de msbuild que ya he encontrado.
- Hola mundo mediante la tarea Message y propiedades.
- Uso de msbuild como instalador para un producto de servidor extremadamente complejo. MSB community tasks configuró el servidor IIS. Las tareas WriteLinesToFile y XmlUpdate escribieron archivos de configuración específicos del servidor. Si ha trabajado con MSI, sabrá que cualquier cosa es mejor que MSI para la instalación.
- Para novatos: los archivos CSProj y Vbproj son los mismos que los archivos msbuild "proj". Para editar directamente: descargue su csproj o vbproj, luego haga clic derecho en el proyecto y seleccione editar. Esto es más agradable y más poderoso que trabajar con eventos torpes previos a la compilación/postconstrucción.
- MSBuild viene con la instalación .NET genérica. A diferencia de otras herramientas sofisticadas, puede usarlo en un servidor/escritorio totalmente limpio.
Aquí es msbuild Hello World Después de lo escribí, me encontré con la MSDN hello world.
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build;Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Who>World</Who>
</PropertyGroup>
<Target Name="Hello">
<Message Text="Hello, $(Who)" Importance="high" ></Message>
</Target>
<Target Name="Build" DependsOnTargets="Hello"/>
<Target Name="Test"/>
</Project>
¿Debería ser una wiki comunitaria, ya que es más una discusión que una pregunta? – Naaff
OK. Parece que el resto de las "características ocultas ..." son wiki de la comunidad. – Precipitous