如何通过dotnet sdk将.dcproj添加到解决方案中

时间:2019-12-27 12:39:36

标签: docker .net-core docker-compose asp.net-core-cli

我有一个名为MyProject.sln的解决方案,并且与docker相关的项目名为-docker-compose.dcproj

我想创建一个新的dotnet新模板,其中包含通过项目docker-compose.dcproj对docker-compose的支持。

我尝试了以下命令:

dotnet sln MyProject.sln add docker-compose.dcproj

我收到此错误消息:

  

项目'C:\ MyProject \ docker-compose.dcproj'具有未知的项目类型,无法添加到解决方案文件中。请与您的SDK提供者联系以获取支持。

我正在使用.net core sdk3.1.100

如何通过上述命令将docker-compose.dcproj添加到解决方案中?

2 个答案:

答案 0 :(得分:0)

我至少可以通过两种方式使它工作。

1。 Visual Studio

我创建了一个.net框架项目。右键单击项目。添加> Docker支持。 我搬了

  1. docker-compose.dcproj
  2. docker-compose.override.yml
  3. docker-compose.yml

到.NET Core项目文件夹。

选择“添加新项目”并选择此dcproj文件。 对撰写文件进行一些编辑。我能够使它正常工作。

2。当您没有Visual Studio时。

我也看到了提到的错误。无法通过cli添加项目

$ dotnet sln ConsoleApp2.sln add "docker-compose.dcproj"
Project 'C:\Code\ConsoleApp2\docker-compose.dcproj' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support.

我对sln文件的文本进行了如下修改。

$类型docker-compose.dcproj

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" Sdk="Microsoft.Docker.Sdk">
  <PropertyGroup Label="Globals">
    <ProjectVersion>2.1</ProjectVersion>
    <DockerTargetOS>Windows</DockerTargetOS>
    <ProjectGuid>9c31f76d-0249-4004-9b65-d5fa07cf95f8</ProjectGuid>
  </PropertyGroup>
  <ItemGroup>
    <None Include="docker-compose.override.yml">
      <DependentUpon>docker-compose.yml</DependentUpon>
    </None>
    <None Include="docker-compose.yml" />
  </ItemGroup>
</Project>

在解决方案文件中Global的上方两行下方添加

Project("{Any GUID}") = "docker-compose", "docker-compose.dcproj", "{<ProjectGuid> from above output}"
EndProject

请不要弄乱文件格式。要非常小心。在尝试执行任何此操作之前,请保存解决方案文件的副本。祝你好运。

答案 1 :(得分:0)

您可以使用 VS 解决此问题,请参阅下图。这将在解决方案的根目录中生成 docker-compose.yml 文件。

enter image description here