Есть ли способ автоматизировать порядок сборки для конкретных проектов в решении? - PullRequest
1 голос
/ 23 марта 2019

Я использую Visual Studio 2017. У нашей команды есть консолидированное решение с большим количеством проектов с множеством зависимостей. Мы работаем над новым проектом, и мне интересно, есть ли способ (может быть, инструмент или сценарий) построить конкретные проекты (, а не все решение ) в определенном порядке ?. В настоящее время для сборки мы делаем это вручную.

Ответы [ 3 ]

1 голос
/ 25 марта 2019

Вы можете использовать SolutionBuild.BuildProject метод и вызывать его из Visual Commander следующим образом:

public class C : VisualCommanderExt.ICommand
{
    public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) 
    {
        EnvDTE.SolutionBuild builder = DTE.Solution.SolutionBuild;
        builder.BuildProject("Debug", @"C:\ClassLibrary\WindowsFormsApp1\WindowsFormsApp1.csproj", true);
        builder.BuildProject("Debug", @"C:\ClassLibrary\WpfApp1\WpfApp1.csproj", true);
    }
}
0 голосов
/ 26 марта 2019

Рассмотрите возможность использования «Внешние инструменты» Visual Studio (Меню -> Инструменты -> Внешние инструменты ...)

Из «Внешних инструментов ...» вы можете вызвать скрипт, что на основе переданных аргументов будет строить необходимые проекты.Вам нужно написать этот скрипт (например, файл .bat), который будет иметь логику того, какие проекты нужно строить на основе входных аргументов ...

Подробнее о меню «Внешние инструменты» в VS читайте здесь.: https://docs.microsoft.com/en-us/visualstudio/ide/managing-external-tools?view=vs-2017

Передача аргументов в команду

В диалоговом окне «Внешние инструменты» вы можете передать необходимые аргументы в скрипт

  • выбранный в данный моментпроект как $ (ProjectFileName)
  • , чтобы указать конфигурацию сборки и платформу (отладка | выпуск, любой процессор | x64 | x86), отметьте флажок «Запрашивать аргументы»
0 голосов
/ 26 марта 2019

Вы можете создавать проекты вне Visual Studio с помощью MSBuild для конкретной конфигурации и платформы:

"c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" "C:\ClassLibrary\ConsoleApplication2\ConsoleApplication2.vcxproj" /t:Build /p:Configuration=Debug /p:Platform="x64"
"c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" "C:\ClassLibrary\ConsoleApplication2\ConsoleApplication2.vcxproj" /t:Build /p:Configuration=Debug /p:Platform="Any CPU"
...