C# ASP.NET Core:Docker还原/生成未能包含项目中的第三方程序集
大家好, 我正在尝试将我的ASP.NET核心应用程序容器化。在我以前的项目中,这个示例docker文件工作得非常好C# ASP.NET Core:Docker还原/生成未能包含项目中的第三方程序集,c#,docker,asp.net-core,C#,Docker,Asp.net Core,大家好, 我正在尝试将我的ASP.NET核心应用程序容器化。在我以前的项目中,这个示例docker文件工作得非常好 FROM microsoft/dotnet:sdk AS build-env COPY . /app WORKDIR /app/MyApp RUN dotnet build RUN dotnet publish -c Release -o out FROM microsoft/dotnet:2.2-aspnetcore-runtime EXPOSE 80 WORKDIR /
FROM microsoft/dotnet:sdk AS build-env
COPY . /app
WORKDIR /app/MyApp
RUN dotnet build
RUN dotnet publish -c Release -o out
FROM microsoft/dotnet:2.2-aspnetcore-runtime
EXPOSE 80
WORKDIR /app
COPY --from=build-env /app/MyApp/out .
ENTRYPOINT [ "dotnet","MyApp.dll" ]
但问题是,我有一个使用第三方程序集或dll(由红色标记覆盖)的项目应用程序
在我的本地项目解决方案中,它可以正常编译和运行。但是当我试图构建我的项目映像时,使用该程序集的C#文件返回一个错误,它说,类型或命名空间名称“the#u assembly”找不到。
当docker步骤处于运行dotnet build
,运行dotnet restore
或运行dotnet publish…
需要帮忙吗 检查您的csproj文件是否将该dll引用作为解决方案中的某个实际位置。也许你在其他地方有它,所以这个文件不包括在docker副本中。这个引用是否在公共nuget存储库中?如果没有,它是否在私有存储库中?如果是,在<代码> dotnet还原< /Cord>中有一个选项指定框架将考虑的包源。如果将DLL引用作为解决方案中的某个位置,请检查CSPRJ文件。也许你在其他地方有它,所以这个文件不包括在docker副本中。@RogersonNazário我已经尝试了
dotnet还原
请检查上面的问题。该dll不在nuget中。只是一个支持第三方设备的软件包。@AppleCiderYummy但它指向真实的位置吗?也许您在D:/projects/project1/something.csproj中有项目。但是你的图书馆在D:/libaries/什么的。那么docker无法复制您的dll。@Raik请将您的评论放在回答部分。我将把它标为答案。感谢您提供的提示,经过几天的尝试,我移动了使用该dll的特定类库上的dll文件夹。现在它可以在我的CI docker build上工作:)这很烦人,因为当dll与它的类库相隔一个文件夹时,它可以在本地编译和运行时工作