2008-09-22 3 views
7

Я пытаюсь узнать, как использовать MSBuild, чтобы мы могли использовать его для создания нашего проекта. Там есть что-то очень большое отверстие в документации, и я нахожу дыру всюду, где я смотрю, дыра - это то, как вы называете или иным образом обозначаете файл проекта MSBuild?Какое имя вы даете файлу сборки проекта MSBuild?

Например, учебник по MSBuild, который можно загрузить из Microsoft, подробно описывает содержимое файла сборки. Например, вот немного их проекта проекта 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> 

И он идет на бла, бла, бла Items бла задач, вот как это сделать, и вот как это сделать. Бесполезно, совершенно бесполезно. Потому что они никогда не могут сказать, как этот XML-файл должен быть распознан приложением MSBuild. Должен ли он быть назван определенным образом? Предполагается ли он помещаться в конкретный каталог? И то и другое? Ни?

Это не только учебник MS, где они не говорят об этом. Я не смог найти его в MSDN или по любой ссылке, которую я могу вырезать из Group.Google.

Кто-нибудь здесь знает? Надеюсь, что так.

Edited добавить: Я перепутал .proj файл, включенный в учебник быть файл .csproj и это то, что один подают в MSBuild, но он принял ответ ниже, прежде чем я увидел это , Это должно было быть довольно очевидно, но я пропустил это.

+0

Атрибут расширения имени файла этого вопроса адресован в вики сообщества. [Есть ли стандартное расширение файла для файлов MSBuild?] (Http://stackoverflow.com/questions/2007689/is-there-a-standard- расширение файла-для-MSBuild-файлов/2012217 # 2012217). – weir

ответ

5

Вы можете назвать файл по своему усмотрению. С помощью 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] 

Так что, если вы сохраните файл как mybuildfile.xml вы должны использовать синтаксис:

msbuild.exe mybuildfile.xml 
0

Или для самых ленивых, как я.

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

Вам не нужно указать файл сборки, если вы уважаете следующую стратегию:

Сегодня, когда вы вызываете MSBuild.exe из командной строки и не указать какой-либо проект файлы как аргументов, то мы делаем некоторые инферрала и сканирования и решаем, должны ли мы строить что угодно. Если мы находим либо MsBuild проект (ничего , что имеет расширение * Proj) или файл решения (.sln), мы будем строить либо проект или решение, как пока существует только одно решение или один проект в каталоге. Если - это решение и проект, мы отдадим предпочтение решению. . Если существует более одного проекта или более , чем одно решение, мы выдаем сообщение об ошибке , потому что мы не можем решить, какой один для сборки.

Это взято из New Feature Feedback Request: /IgnoreProjectExtensions - A new command-line switch.

Я всегда называю свои написанные вручную сценарии build.proj.

2

Не прямой ответ, но связанный; если вы используете .msproj в качестве своего расширения, Visual Studio дает вам intellisense.

+0

Я переименовал свой файл сборки в расширение .msproj, а visual studio 2010 не узнал его. #потерпеть неудачу –

0

Visual Studio 2012 распознает .msbuildproj как расширение и будет рассматривать его как «проект» в обозревателе решений.

Смежные вопросы