У меня есть. NET Базовое решение, которое выглядит так (ну, не совсем, но это репрезентативно):
- Решение
- Конфигурация "Release" => builds оба проекта как Release
- Конфигурация "Production" => строит ProjA как Production, ProjB и другие как Release
- ProjA => ссылается на ProjB
- Configuration «Release»
- Конфигурация «Production»
- ProjB
- Еще много такие проекты, как 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 в решении
- , определяющее константы непосредственно из командной строки
?