Какое имя вы даете файлу сборки проекта MSBuild?
-
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
как расширение и будет рассматривать его как "проект" в Обозревателе решений.