.NET 8 Core 使用 docker-compose 运行时出现“无法解析的符号”

问题描述 投票:0回答:1

在我的 .NET 8 Core API 应用程序中,当我运行

dotnet run
时,一切正常。但我使用的是 docker-compose,问题就来了。

当我使用

docker-compose up --build
运行应用程序时,我的 IDE 会停止解析解决方案的所有项目中安装的 NuGet 包。而且,重要的一点:它构建得很好,我从未遇到过构建问题。

假设我导入了 2 个包:

using AutoMapper;
using Microsoft.EntityFrameworkCore;

在使用 docker-compose 构建之前,完全没有问题。 构建后,我会遇到这个问题:

Cannot resolve symbol 'EntityFrameworkCore'
。 所有 NuGet 包依此类推。

我尝试了很多方法来解决这个问题:

  • 使 IDE 缓存无效
  • 从Rider变更为VS
  • 在另一台计算机上克隆解决方案

但它从未解决问题。当我执行

dotnet resolve
时,它可以工作,但只是暂时的:在新的重建后,错误再次出现。


解决方案

几个小时后我终于找到了解决方案。在 docker-compose.yml 中,将这些行添加到 Web 配置中:

volumes:
    - /app/obj/
    - /app/bin/
    - /app/out/

然后将这些行添加到

.dockerignore
文件中:

bin/
obj/
out/
c# .net .net-core nuget nuget-package-restore
1个回答
0
投票

解决方案

几个小时后我终于找到了解决方案。在 docker-compose.yml 中,将这些行添加到 Web 配置中:

volumes:
    - /app/obj/
    - /app/bin/
    - /app/out/

然后将这些行添加到

.dockerignore
文件中:

bin/
obj/
out/
© www.soinside.com 2019 - 2024. All rights reserved.