我正在尝试创建一个 dotnet 核心应用程序并通过 azure yaml 管道(具有多个存储库)将其部署到 kubernetes 集群
我遇到以下错误:CSC:错误 CS5001:程序不包含适合的静态“主要”方法对于入口点 [/src/File.Pod/File.Pod.csproj]
该项目是使用以下命令创建的: dotnet new console -o File.Pod-n File.Pod
我的目标是部署一个 exe。Internet 上的大多数文档都在讨论部署 ASPNET Web 应用程序。
csproj 生成
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
**<OutputType>Exe</OutputType>**
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration.AzureKeyVault" Version="3.1.7" />
<PackageReference Include="Models" Version="9704.0.0-beta" />
<PackageReference Include="NLog.Web.AspNetCore" Version="4.9.3" />
<PackageReference Include="Utils.Log" Version="2020.9.3.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Shared.Lib\File.Service\File.Service.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Helpers\" />
</ItemGroup>
</Project>
和码头文件:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
COPY ["File.Pod.csproj", "File.Pod/"]
COPY ["Shared.Lib/File.Service/File.Service.csproj", "Shared.Lib/File.Service/"]
COPY ["Shared.Lib/File.DAL/File.DAL.csproj", "Shared.Lib/File.DAL/"]
COPY ["nuget.config", "./"]
RUN dotnet restore "File.Pod/File.Pod.csproj" --configfile nuget.config -nowarn:msb3202,nu1503 --verbosity diag
COPY . .
WORKDIR "/src/File.Pod"
RUN dotnet build "File.Pod.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "File.Pod.csproj" -c Release -o /app
FROM build AS base
RUN apt update && apt install -y openssh-client
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "run"]
作为 ENTRYPOINT,我尝试了 ENTRYPOINT ["dotnet", "run"] 或 ENTRYPOINT ["dotnet", "File.POD.DLL"] 没有区别。
我觉得问题出在图像的类型上(FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build),但我不确定。我尝试了各种具有相同结果的方法。
确切的错误日志:
2020-09-11T11:05:41.9723837Z 步骤 10/26:运行 dotnet build "File.Pod.csproj" -c Release -o /app 2020-09-11T11:05:42.0083655Z --->在 7ed9311b9c89
2020-09-11T11:05:42.7118936Z Microsoft (R) Build Engine 版本 16.6.0+5ff7b0c9e 中运行,适用于 .NET Core
2020-09-11T11:05:42.7119408Z 版权所有 (C) Microsoft Corporation。版权所有。
2020-09-11T11:05:42.7119642Z
2020-09-11T11:05:43.1438745Z 确定要恢复的项目...
2020-09-11T11:05:45.6330496Z 已恢复 /src/File.Pod/File.Pod.csproj (在 2.04 秒内)。
2020-09-11T11:05:45.6330978Z 已恢复 /src/Shared.Lib/File.Service/File.Service.csproj(在 2.05 秒内)。
2020-09-11T11:05:45.7516552Z 已恢复 /src/Shared.Lib/File.DAL/File.DAL.csproj(在 101 毫秒内)。
2020-09-11T11:05:49.6118355Z File.DAL -> /app/File.DAL.dll
2020-09-11T11:05:50.2378452Z File.Service -> /app/File.Service.dll
2020-09- 11T11:05:50.6394251Z CSC:错误 CS5001:程序不包含适用于入口点的静态“Main”方法 [/src/File.Pod/File.Pod.csproj]
2020-09-11T11:05:50.6525494Z
2020-09-11T11:05:50.6525914Z 构建失败。
2020-09-11T11:05:50.6531013Z
2020-09-11T11:05:50.6536286Z CSC:错误 CS5001:程序不包含适用于入口点 [/src/File.Pod/File. Pod.csproj]
2020-09-11T11:05:50.6541921Z 0 警告
2020-09-11T11:05:50.6542199Z 1 错误