.net 在linux容器上运行自包含的dotnet核心应用程序会出现错误

flseospp  于 2023-06-07  发布在  .NET
关注(0)|答案(1)|浏览(197)

我试图创建一个自包含的.net 7控制台应用程序,并在linux容器上手动运行它。为了达到这个目的,这就是我正在做的
1.使用以下dotnet publish -c Release -r linux-musl-x64 --self-contained true /p:PublishTrimmed=true -o ./deploy将控制台应用程序发布为自包含应用程序
1.运行以下容器docker run -it mcr.microsoft.com/dotnet/runtime-deps:6.0-alpine
1.使用以下docker cp deploy <container_id>:/step 1的输出复制到step 2上的容器中
现在,当我导航到步骤2中创建的容器并尝试运行简单控制台应用程序时,我得到以下错误
qemu-x86_64: Could not open '/lib/ld-musl-x86_64.so.1': No such file or directory . i也遵循了这里给出的步骤dotnet publish --self-contained option on Linux container,但没有成功。不知道出了什么问题。这就是我的.csproj的样子

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net7.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

</Project>
6yt4nkrj

6yt4nkrj1#

在Fedora上,我运行:

sudo dnf provides /lib/ld-musl-x86_64.so.1

上面写着我需要的包裹是

musl-libc-1.2.3-1.fc36.x86_64

查找软件包名称的命令可能会有所不同,具体取决于您正在运行的发行版。

相关问题