Не могу исключить *.dcproj из пакета dotnet

Я использовал Visual Studio 2017, чтобы создать решение с поддержкой docker-compose. Когда я пытаюсь упаковать пакет nuget (во время процесса CI), используя dotnet pack MySolution.sln Я получил ошибку MSB4057, говорящую о том, что он не может запаковать проект docker-compose.dcproj. Поэтому я попытался использовать <IsPackable>false</IsPackable> внутри моего docker-compose.dcproj безуспешно. Поэтому я должен упаковать свои проекты один за другим или использовать разные решения для CI и для процесса отладки - оба решения кажутся мне безобразными.

У кого-нибудь есть идеи, как исключить файл.dcproj из попытки быть упакованным dotnet pack?

0 ответов

В сценарии CI удалите проект docker-compose из решения перед командой pack с

dotnet sln MySol.sln remove docker-compose.dcproj

У меня была такая же проблема, и я решил ее, добавив фиктивную цель "Pack" в docker-compose.dcproj, поэтому мой проект выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" Sdk="Microsoft.Docker.Sdk">
  <PropertyGroup Label="Globals">
    <ImportDirectoryBuildProps>false</ImportDirectoryBuildProps>
    <ImportDirectoryBuildTargets>false</ImportDirectoryBuildTargets>
    <ProjectVersion>2.1</ProjectVersion>
    <DockerTargetOS>Windows</DockerTargetOS>
    <ProjectGuid>0a1c7d45-3174-4d07-a025-4d5fd55042c0</ProjectGuid>
    <IsPackable>false</IsPackable>
    <IsTestProject>false</IsTestProject>
  </PropertyGroup>
  <PropertyGroup>
    <DockerServiceName>app-name</DockerServiceName>
  </PropertyGroup>
  <ItemGroup>
    <None Include="docker-compose.override.yml">
      <DependentUpon>docker-compose.yml</DependentUpon>
    </None>
    <None Include="docker-compose.yml" />
  </ItemGroup>

  <Target Name="Pack">
  </Target>

</Project>
Другие вопросы по тегам