Visual studio Docker Desktop for Windows+;ASP.NET核心错误

Visual studio Docker Desktop for Windows+;ASP.NET核心错误,visual-studio,docker,asp.net-core,docker-for-windows,docker-desktop,Visual Studio,Docker,Asp.net Core,Docker For Windows,Docker Desktop,我最近决定给docker一个尝试,我现在遇到这个错误已经两天了。不管我做什么,我似乎都摆脱不了它 对于.NET Core 2.2应用程序: 2>C:\Users\Russell\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.4.4\build\Container.targets(256,5):错误:已添加具有相同密钥的项。 这是新添加的项目Docker支持,没有配置更改。我尝试过清理、重建、更新所有

我最近决定给docker一个尝试,我现在遇到这个错误已经两天了。不管我做什么,我似乎都摆脱不了它

对于.NET Core 2.2应用程序:

2>C:\Users\Russell\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.4.4\build\Container.targets(256,5):错误:已添加具有相同密钥的项。

这是新添加的项目Docker支持,没有配置更改。我尝试过清理、重建、更新所有NUGET等。如果我在IIS express中运行该项目,它运行良好

有人有什么想法吗

编辑1:Docker文件:

WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY ["SearchAPICore_Search/SearchAPICore_Search.csproj", "SearchAPICore_Search/"]
COPY ["SearchAPICore_Models/SearchAPICore_Models.csproj", "SearchAPICore_Models/"]
RUN dotnet restore "SearchAPICore_Search/SearchAPICore_Search.csproj"
COPY . .
WORKDIR "/src/SearchAPICore_Search"
RUN dotnet build "SearchAPICore_Search.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "SearchAPICore_Search.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "SearchAPICore_Search.dll"]```


您可能有一个导致问题的剩余容器。尝试使用以下命令清理环境:

Linux:

# Clean exited containers
docker ps --filter status=exited -q | xargs docker rm
# Clean dangling images
docker images --filter dangling=true -q | xargs docker rmi
# Clean old tagged images 
docker images --filter reference="$ContainerTag" -q | xargs docker rmi
Windows PowerShell:

# Clean exited containers
docker ps --filter status=exited -q | %{ docker rm }
# Clean dangling images
docker ps --filter dangling=true -q | %{ docker rmi }
# Clean old tagged images 
docker images --filter reference="$ContainerTag" -q | %{ docker rmi }

最后一个可能没有必要,但它不会伤害你。只需确保将$ContainerTag替换为图像的名称,或者使用该值创建一个变量即可。

您可能有一个剩余的容器导致了问题。尝试使用以下命令清理环境:

Linux:

# Clean exited containers
docker ps --filter status=exited -q | xargs docker rm
# Clean dangling images
docker images --filter dangling=true -q | xargs docker rmi
# Clean old tagged images 
docker images --filter reference="$ContainerTag" -q | xargs docker rmi
Windows PowerShell:

# Clean exited containers
docker ps --filter status=exited -q | %{ docker rm }
# Clean dangling images
docker ps --filter dangling=true -q | %{ docker rmi }
# Clean old tagged images 
docker images --filter reference="$ContainerTag" -q | %{ docker rmi }

最后一个可能没有必要,但它不会伤害你。只需确保将$ContainerTag替换为图像的名称,或创建一个具有该值的变量即可。

发布docker文件或步骤如何添加此错误文件-我所做的只是右键单击项目->添加->docker支持>linux(windows也做同样的事情),然后尝试通过“跑“工具栏中VS顶部的按钮。这将成为Visual Studio疑难解答,而不是docker。”。我真的建议不要用VS做任何与docker相关的事情。手工制作docker文件,了解这些问题的解决方法,因为我遇到了同一个问题。遗憾的是,没有。我将在下周回到docker,并与docker联系,尽管如此。发布您的docker文件或您如何添加此错误文件的步骤-我所做的只是右键单击项目->添加->docker支持>linux(windows执行相同的操作),然后尝试通过工具栏中VS顶部的“运行”按钮在docker中运行项目。这将成为Visual Studio疑难解答,而不是docker。我真的建议不要用VS做任何与docker相关的事情。手工制作你的docker文件,以了解这些事情是如何发生的,因为我遇到了同一个问题。不幸的是,没有。我下周会回到docker,但会联系docker。“最后一个可能没有必要,但也帮不上忙。”-我想你的意思是“不会受伤”?是的,很抱歉。没问题-只是想确保我的编辑是cromulent。“最后一个可能没有必要,但也没用。”-我想你是说“不会受伤”?是的,很抱歉。没问题-只是想确保我的编辑是cromulent。