我试图建立我的docker形象,但我得到了这个错误。
错误CS5001:程序不包含适合入口点的静态“Main”方法[/6GAG.WebApi/6GAG.WebApi.csproj]
我在一个解决方案中有三个项目。
我的Dockerfile存在于我的。sln文件是
FROM mcr.microsoft.com/dotnet/sdk:6.0 as build-env
WORKDIR /app
COPY 6GAG.WebApi/6GAG.WebApi.csproj /6GAG.WebApi/6GAG.WebApi.csproj
COPY 6GAG.Core/6GAG.Core.csproj /6GAG.Core/6GAG.Core.csproj
RUN dotnet restore /6GAG.WebApi/6GAG.WebApi.csproj
COPY ./ ./
RUN dotnet publish /6GAG.WebApi/6GAG.WebApi.csproj -c Release -o out
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
EXPOSE 80
COPY --from=build-env app/out/ .
ENTRYPOINT ["dotnet", "6GAG.WebApi.dll"]
我的. csproj文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>_6GAG.WebApi</RootNamespace>
<UserSecretsId>7f7e2bd0-6f27-4752-afe8-9839b765d3f0</UserSecretsId>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AutoMapper" Version="10.1.1" />
<PackageReference Include="FluentValidation.AspNetCore" Version="10.3.4" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="6.0.0" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.11.1" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\6GAG.Core\6GAG.Core.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Migrations\" />
</ItemGroup>
</Project>
如何解决这个问题?
试着检查libs项目中是否是这样的
<Project Sdk="Microsoft.NET.Sdk.Web">
换成那样
<Project Sdk="Microsoft.NET.Sdk">
在图书馆项目中,我提到
Microsoft.AspNetCore.Mvc.Abstractions
来解决我的依赖关系。
那对我有用。
[下面是工作方案]
我在dotnet 6上也经历过这种错误。由于这是对dotnet core以前版本的升级,我不想在程序中手动添加Main方法。反恐精英。还有其他选择吗?
cs.proj
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
</PropertyGroup>
更新!这对我有用
在使用docker构建时获取“程序不包含适合入口点的静态‘Main’方法”,为什么?
Docker-无法计算缓存密钥:未找到-在Visual Studio中运行良好
//将dockerfile移到新位置。sln目录
我遇到了同样的问题。即使项目文件被标记为
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
您还需要在dokerfile-r linux-64中添加针对linux的MS build标志,或者在您的应用程序中添加标记。csproj,以便docker文件位于正确的sdk位置。
RUN dotnet publish /6GAG.WebApi/6GAG.WebApi.csproj -c Release -o out -r linux-64
我在使用Docker时遇到了一个问题,无法找到合适的解决方案。 我试图使用. NETSDK2.1构建Docker映像。 问题是,当Docker试图运行build语句时,它失败了,错误输出被忽略 CSC:错误CS5001:程序不包含适合入口点的静态“Main”方法 有趣的是,如果我在本地命令行上执行构建语句,它会很好地工作。 我已经在项目上检查了我的语言版本标签,它是7.3。 这是我的Docker文
问题内容: 我正在使用Spring框架(2.5)及其AOP功能。我有一个切入点表达,例如 凡ItemReader接口是一个Spring接口,它的签名是: 该接口有一个名为“ read”的方法,我要对其应用此建议:方法签名为: 但是,当我使用上述切入点表达式运行应用程序时,出现以下异常: java.lang.IllegalArgumentException:警告与此类型名称不匹配:org.sprin
问题内容: 到目前为止,我一直在使用方法在Java中执行代码。什么时候/为什么要使用或代替? 问题答案: 这是一个特殊的问题,因为这不应该是选择问题。 启动JVM时,你指定要运行的类,并且该类就是程序启动所在的类。 通过,我假设你的意思是JApplet方法。在浏览器中启动小程序时,指定的小程序的方法将作为第一业务顺序执行。 通过,我假设你的意思是Runnable的方法。这是启动新线程时调用的方法。
我在学习,我是新手,但我想知道我做什么来“运行”它。这是一个错误:
我的代码编译得很好,但是当我运行它时,它给我一个错误: 这是我的密码: 我知道我需要在某个地方添加“publicstaticvoidmain(String[]args)”命令,但我不确定在哪里!谢谢你能给予的任何帮助!
我有一个mongodb服务和一个使用docker compose运行的测试服务: 在我试图运行的start.sh脚本中: 但我得到了以下错误: 我的问题是:为什么会发生错误?Dependes_on属性不应该自动包含服务依赖项吗?正如这里提到的: depends_on 表示服务之间的依赖关系,这有两个效果: docker compose up将按依赖顺序启动服务。在下面的示例中,db和redis将在