![](/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.