Какое имя вы даете файлу сборки проекта MSBuild?

StackOverflow https://stackoverflow.com/questions/118091

  •  02-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь научиться использовать 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>

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

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

Кто-нибудь здесь знает?Я очень надеюсь на это.

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

Это было полезно?

Решение

Вы можете назвать файл так, как считаете нужным.Из справки по 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

Другие советы

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

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

Это взято из Запрос обратной связи по новой функции:/IgnoreProjectExtensions - Новый переключатель командной строки.

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

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

Или для по-настоящему ленивых, вроде меня.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top