![](/img/trans.png)
[英]Multiple Projects in .Net Solution - Combine Build Artifacts from all projects
[英]Build docker container from solution with multiple projects
我有一个包含 2 个项目的 .NET Core 项目:
SLN:
- Web-API
- Infrastructure
我正在使用这个 dockerfile 与 docker 一起构建它
FROM microsoft/aspnetcore-build:2.0 AS build-env
WORKDIR /app
COPY . ./
RUN dotnet restore
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM microsoft/aspnetcore:2.0
WORKDIR /app
COPY --from=build-env /app/ .
ENTRYPOINT ["dotnet", "/app/Lab/out/API.dll"]
但是现在我在我的解决方案中也创建了一个 Web 应用程序
SLN:
- Web-API
- Web-App
- Infrastructure
突然间,docker 不再构建了。 怎么来的? 如何基于相同的解决方案创建两个 docker 容器,一个用于 Web-API,另一个用于 Web-app?
来自 Docker 的错误消息:
无法从程序集 /usr/share/dotnet/sdk/NuGetFallbackFolder/microsoft.aspnetcore.mvc.razor.viewcompilation/2.0.3/build/netstandard2.0/Microsoft.AspNetCore.Mvc.Razor 加载“GetDotNetHost”任务.ViewCompilation.Tasks.dll。 已加载同名程序集 确认声明正确,程序集及其所有依赖项都可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。 [/app/Lab/API.csproj]
所以这个问题现在终于解决了。 事实证明,当有 Razor 视图可用时,在编译 .net core 2.0 项目时会出现问题:
在 ASP.NET Core 2.0 中执行独立部署 (SCD) 时,Razor 视图预编译当前不可用。 当 2.1 版本发布时,该功能将可用于 SCD。 有关详细信息,请参阅 Windows 上的 Linux 交叉编译时查看编译失败。
我需要做的是添加 nuget 包:
Microsoft.AspNetCore.Mvc.Razor.ViewCompilation
在我的项目中使其工作。 奇怪的是,它是在 Visual Studio for Mac 中构建的,而不是从命令提示符构建的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.