dotnet публикует только один проект из решения в VSTS
Мы пытаемся построить один проект из решения Visual Studio в VSTS с задачей .NET Core. Мы можем "построить дотнет" в этом проекте. Но когда мы пытаемся "опубликовать dotnet", он пытается опубликовать все проекты из решения. Даже если мы используем "custom dotnet", он пытается опубликовать все проекты.
Есть ли способ использовать задачу.NET Core для публикации только одного проекта или проектов, которые были построены? Или мы должны запустить пользовательскую задачу командной строки?
Причина этого в том, что у нас есть проект, который не будет создаваться, и нам не нужно / не нужно его публиковать. Поэтому мы хотели бы создать и опубликовать один проект, а не все проекты.
5 ответов
Ты можешь использовать dotnet publish <Path to .csproj>
, Это позволит создать и опубликовать только указанный проект и проекты, от которых он зависит.
Чтобы указать проект в задаче ".Net Core" с помощью команды "опубликовать", необходимо снять флажок "Опубликовать веб-проекты".
Другое решение - установить IsPublishable
в csproj.
Я обычно делаю это в тех случаях, когда это проект модульного тестирования или его не нужно публиковать, если вы запустите dotnet publish
для файла решения.
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<IsPackable>false</IsPackable>
<IsPublishable>false</IsPublishable >
<Configurations>prod;stage;dev</Configurations>
<Platforms>AnyCPU</Platforms>
</PropertyGroup>
Если вы снимите флажок «Публиковать веб-проекты», вы увидите поле, которое позволяет вам ввести проект (csproj), на который вы хотите настроить таргетинг.
Это решается на зависимости проекта для каждого проекта.
Другими словами, есть некоторая конфигурация, чтобы сказать, что "какой проект нужно построить первым, чтобы позволить вашему целевому проекту успешно построить".
Если вы используете Visual Studio, щелкните правой кнопкой мыши решение и выберите "Свойства". В этом примере мой целевой прогон TestAngular.Web.Host
и для того, чтобы построить эти проекты, необходимо построить TestAngular.Web.Core
первый.
Если вы используете другую IDE, просто перейдите в каталог, в моем случае это будет src\TestAngular.Web.Host
и изменить TestAngular.Web.Host.csproj
файл
<Project Sdk="Microsoft.NET.Sdk.Web">
...
<ItemGroup>
<ProjectReference Include="..\TestAngular.Web.Core\TestAngular.Web.Core.csproj" />
</ItemGroup>
...
</Project Sdk="Microsoft.NET.Sdk.Web">
Добавьте или удалите, какие проекты здесь не нужны, следуя тому же синтаксису
Возможно, опоздал на вечеринку, но для того, чтобы иметь контроль над тем, какие проекты публиковать, вы можете отсоединить переменную "Path to project(s)" (нажав на "Link settings"). Это делает поле редактируемым, и вы можете указать желаемый.csproj.