Pregunta

Me gustaría compilar una solución que pasa por la ruta del archivo de solución (archivo .sln) y el modo de construcción (depuración, liberación). No quiero llamar a un proceso de línea de comando como devenv.exe o msbuild.exe, en lugar me gustaría usar una API y saber si había errores de compilación.

¿Es posible? Por favor proporcionar muestras si usted cree que sabe cómo hacerlo.

¿Fue útil?

Solución

Vas a tener que poner en marcha un proceso en algún momento de hacer la compilación que también podría generar un proceso para poner en marcha la compilación. Va a ser mucho más fácil que luchar con una API.

Editar Andrew da buenos consejos sobre cómo usted puede ir sobre ello, pero sigo pensando que es un error.

Otros consejos

Como itowlson señaló que también podría utilizar el Construir API motor

... de MSDN ...

// Build a project file
bool success = engine.BuildProjectFile(@"c:\temp\validate.proj");

Puede utilizar MSBuild de un guión como un lote archivo. Y sólo comprobar el ErrorLevel por algo distinto de 0 ... o puede divertirse con las API.

C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ MSBuild.exe

.. desde msbuild.exe /? ...

  

Microsoft (R) Construir la versión del motor   2.0.50727.4927 [Microsoft .NET Framework, versión 2.0.50727.4927]   Copyright (C) Microsoft Corporation   2005. Todos los derechos reservados.

     

Sintaxis: MSBuild.exe   [Opciones] [archivo de proyecto]

     

...

     

Ejemplos:

    MSBuild MyApp.sln /t:Rebuild /p:Configuration=Release
    MSBuild MyApp.csproj /t:Clean /p:Configuration=Debug

discutir con el compilador de C # mediante programación. He aquí un artículo discutir el archivo sln formato. El archivo sln es un archivo XML, así que es bastante fácil de leer a él.

También me gustaría sugerir el uso de la API de MSBuild. Parece que funciona bastante bien. Sin embargo, ha cambiado de manera significativa a partir del .NET4 y VS2010.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top