Publi sh один проект из решения - PullRequest
0 голосов
/ 16 января 2020

У меня есть. NET Базовое решение, которое выглядит так (ну, не совсем, но это репрезентативно):

  • Решение
    • Конфигурация "Release" => builds оба проекта как Release
    • Конфигурация "Production" => строит ProjA как Production, ProjB и другие как Release
  • ProjA => ссылается на ProjB
    • Configuration «Release»
    • Конфигурация «Production»
  • ProjB
    • Конфигурация «Release»
  • Еще много такие проекты, как ProjB

Моя цель - опубликовать sh ТОЛЬКО ProjA из командной строки, поэтому не публикуйте sh ProjB и другие.

Обратите внимание, что единственным Конфигурация Production определяет постоянную компилятора для ProjA. Кроме того, все решение уже собрано и протестировано до этапа публикации, и я предпочитаю не перестраивать все решение во время публикации, поскольку это пустая трата времени и ресурсов.

Существует несколько способов сделать это:

  • Publi sh ProjA.csproj напрямую. Проблема в том, что, когда я использую флаг do tnet --no-build, он жалуется, что не может найти двоичный файл ProjB для производства => Он не знает, что должен использовать конфигурацию выпуска ProjB потому что он не проверяет файл решения.
  • Publi sh ProjA.csproj напрямую, но без --no-build. Теперь он будет собирать ProjB снова, но с производственной конфигурацией (у него его нет, но я предполагаю, что MSBuild просто использует Release 1 и выводит его в папку «Production» ??). Проблема в том, что, как уже говорилось ранее, мне не нравится, когда он снова строит каждый проект в решении.
  • Publi sh решение и добавление <IsPublishable>false</IsPublishable> в ProjB (и все остальные). Не идеальная причина, что если я по какой-то причине хочу опубликовать sh ProjB отдельно?
  • Избавиться от конфигурации производства и установить константу компилятора через командную строку. Возможно, но также: это то, для чего сделаны конфигурации, поэтому я предпочитаю продолжать использовать его. Это также позволяет мне переключать конфигурации в VS UI для быстрого тестирования различных конфигураций, которые мне действительно нравятся.
  • Я также исследовал несколько вариантов с непосредственным использованием MSBuild и использованием файла pub xml, но не особо удачи и в этом.

Итак, мой вопрос: есть ли способ опубликовать sh отдельный проект без

  • перестройки всех других проектов
  • добавление материала к каждому другому csproj в решении
  • , определяющее константы непосредственно из командной строки

?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...