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

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

我有一个名为:MyProject.sln 的解决方案和名为 docker-compose.dcproj 的与 docker 相关的项目。

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

我试过这个命令:

dotnet sln MyProject.sln 添加 docker-compose.dcproj

我收到此错误消息:

Project 'C:\MyProject\docker-compose.dcproj' has an unknown project type and cannot be added to the solution file. Contact your SDK provider for support.

我正在使用 .net core sdk 版本 3.1.100

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

最佳答案

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

1。 Visual Studio

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

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

到 .NET Core 项目文件夹。

选择 Added new project 并选择这个 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

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

关于docker - 如何通过 dotnet sdk 将 .dcproj 添加到解决方案中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59500961/

相关文章:

reactjs - 创建React App Build和Docker-Compose不传递环境变量

docker - 如何通过 kubernetes pod 传递 docker run 参数

docker - 从Artifactory创建docker镜像

c# - 如何在 Visual Studio 中解析 "NuGet package restore failed"?

docker - kubernetes kompose up 不支持的 env_file key

docker - 如何正确清除/var/snap/docker?

javascript - SignalR 不会退回到旧协议(protocol)

docker - 将 .NET Core 控制台应用程序构建到 Docker 中

mongodb - 通过 docker-composer 将 --wiredTigerCacheSizeGB 存储到 mongod.conf

mysql - 如何保留我的数据库,但更改 docker-compose 中的代码?