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

wkyowqbh  于 2022-11-03  发布在  Docker
关注(0)|答案(3)|浏览(124)

我在Docker容器中构建dotnet核心应用程序时遇到了问题。我使用的是dotnet核心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应用程序。
有什么想法吗?

7rfyedvj

7rfyedvj1#

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

<OutputType>EXE</OutputType>

看起来Visual Studio 2107在更改输出类型时添加了该标记。一旦我删除了该标记,我就能够在Docker容器和Windows中构建和发布了。

iyzzxitl

iyzzxitl2#

在我的例子中,存储库/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 '

cs7cruho

cs7cruho3#

因为我更改了命名空间和解决方案的名称。

  • 我编辑了.csproj
  • 在我发现旧名称的每个标签处,我用新名称替换它,
  • 已清除构建、构建和错误消失

相关问题