2008-09-22 5 views
7

Estoy tratando de aprender a usar MSBuild para que podamos usarlo para construir nuestro proyecto. Hay un agujero que parece ser muy grande en la documentación, y encuentro el agujero en todas partes que miro, siendo el agujero cómo nombras o designas el archivo del proyecto MSBuild.¿Qué nombre le da al archivo de compilación del proyecto MSBuild?

Por ejemplo, el tutorial sobre MSBuild que puede descargarse de Microsoft entra en detalles sobre el contenido del archivo de compilación. Por ejemplo, aquí hay un poco de su archivo de proyecto Hello World.

<Project MSBuildVersion = "1.0" DefaultTargets = "Compile"> 
    <Property appname = "HelloWorldCS"/> 
    <Item Type = "CSFile" Include = "consolehwcs1.cs"/> 
    <Target Name = "Compile"> 
     <Task Name = "CSC" Sources = "@(CSFile)"> 
     <OutputItem TaskParameter = "OutputAssembly" Type = "EXEFile" Include = "$(appname).exe"/> 
     </Task> 
     <Message Text="The output file is @(EXEFile)"/> 
    </Target> 
</Project> 

Y sigue, bla, bla, bla tareas Artículos bla, bla, bla, aquí está cómo se hace esto y así es como se hace eso. Inútil, completamente inútil. Porque nunca se dan cuenta de cómo se supone que este archivo xml debe ser reconocido por la aplicación MSBuild. ¿Se supone que debe ser nombrado de una manera particular? ¿Se supone que debe colocarse en un directorio particular? ¿Ambos? ¿Ninguno?

No es solo el tutorial de MS donde no cuentan al respecto. No he podido encontrarlo en MSDN, ni en ningún enlace que pueda extraer de Groups.Google, tampoco.

¿Alguien aquí sabe? Seguro espero eso.

Editado para añadir: confundí la .proj archivo incluido en el tutorial a ser el archivo .csproj y eso es lo alimentados uno a MSBuild, pero tardó la respuesta a continuación antes de ver esto . Debería haber sido bastante obvio, pero me lo perdí.

+0

El aspecto de la extensión de nombre de archivo de esta pregunta se aborda en la wiki de la comunidad [¿Hay una extensión de archivo estándar para los archivos de MSBuild?] (Http://stackoverflow.com/questions/2007689/is-there-a-standard- file-extension-for-msbuild-files/2012217 # 2012217). – weir

Respuesta

5

Puede nombrar el archivo como mejor le parezca. De la ayuda de MSBuild

msbuild.exe /? 

Microsoft (R) Build Engine Version 2.0.50727.3053 
[Microsoft .NET Framework, Version 2.0.50727.3053] 
Copyright (C) Microsoft Corporation 2005. All rights reserved. 

Syntax:    MSBuild.exe [options] [project file] 

Así que si guarda el archivo como mybuildfile.xml que utilizaría la sintaxis:

msbuild.exe mybuildfile.xml 
0

O para los más perezosos, como yo.

msbuild.exe project-file-name.vcproj /t:Rebuild /p:Configuration=Release 
2

Usted no tiene que especificar el fichero de construcción si se respetan siguiente estrategia:

Hoy en día, cuando se invoca msbuild.exe desde la línea de comandos y no especificar cualquier proyecto archivos como argumentos, luego hacemos algunos auto inferir y escanear y decidir si debería construir algo. Si encontramos ya sea un proyecto msbuild (nada que tiene una extensión de * proj) o un archivo de solución (.sln), edificaremos ya sea el proyecto o la solución como siempre y cuando sólo hay una solución o un proyecto en el directorio. Si hay es una solución y un proyecto, vamos a dar preferencia a la solución. Si hay más de un proyecto o más que una solución, emitimos un mensaje de error porque no podemos decidir qué construir.

Esto está tomado de New Feature Feedback Request: /IgnoreProjectExtensions - A new command-line switch.

Siempre nombro mis scripts escritos manualmente build.proj.

2

No es una respuesta directa, sino que está relacionada; si usa .msproj como su extensión, Visual Studio le ofrece intellisense.

+0

Cambié el nombre de mi archivo de compilación a extensión .msproj y visual studio 2010 no lo reconoce. #fallar –

0

Visual Studio 2012 reconoce el .msbuildproj como una extensión y lo tratará como un "proyecto" en el Explorador de soluciones.

Cuestiones relacionadas