在Docker容器中构建dotnet应用时找不到为Main方法指定的'xxx.Program'

时间:2019-04-23 17:58:14

标签: docker .net-core

在Docker容器中构建dotnet核心应用程序时遇到问题。我正在使用dotnet core 2.2。

项目的设置为: 输出:控制台应用程序 启动项目:Web.Project

在容器内运行以下命令时:

RUN dotnet build "Web.csproj" -c Release -o /app

我收到以下错误:

Could not find 'Web.Program' specified for Main method [/src/Web/Web.csproj]

如果项目只是一个程序集(dll),那么一切正常,但是我无法运行该Web应用程序。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我的问题的解决方案是从csproj文件中删除以下行:

<OutputType>EXE</OutputType>

Visual Studio 2107似乎在更改输出类型时添加了该标签。删除该文件后,便可以在Docker容器和Windows中进行构建和发布。

答案 1 :(得分:0)

在我的例子中,带有存储库 /home/ubuntu/project 的文件夹与我的目标文件夹是相同的文件夹 dotnet build -C Release --runtime ubuntu.18.04-x64 --output /home/ubuntu/project`。

解决方案是更改它 dotnet build -C Release --runtime ubuntu.18.04-x64 --output /home/ubuntu/project_build`