C# 命令不是';在Linux容器上导入PowerShell二进制模块时无法导出

C# 命令不是';在Linux容器上导入PowerShell二进制模块时无法导出,c#,linux,powershell,docker,.net-core,C#,Linux,Powershell,Docker,.net Core,我已经在.NETCore中创建了一个PowerShell二进制模块(TargetFramework是netstandard2.0)。当我在Windows计算机上使用导入模块时,该模块将成功导入,并且我能够调用cmdlet。当我在Linux容器上执行相同操作时(我使用的是官方的Microsoft PowerShell容器映像-mcr.Microsoft.com/PowerShell:ubuntu-18.04),模块导入时不会出错,但我无法调用cmdlet。如果我运行Get模块,Linux容器上没有

我已经在.NETCore中创建了一个PowerShell二进制模块(TargetFramework是netstandard2.0)。当我在Windows计算机上使用导入模块时,该模块将成功导入,并且我能够调用cmdlet。当我在Linux容器上执行相同操作时(我使用的是官方的Microsoft PowerShell容器映像-mcr.Microsoft.com/PowerShell:ubuntu-18.04),模块导入时不会出错,但我无法调用cmdlet。如果我运行Get模块,Linux容器上没有列出导出的命令,但我的Windows计算机上有

PowerShell模块的项目是使用
dotnet new PowerShell
初始化的。我尝试添加一个psd1清单文件,我还初始化了一个新项目,并重复了上述步骤。使用dotnet new创建的基础项目也会出现同样的问题

我正在运行dotnet verion 2.2.103。运行
dotnet new powershell
将创建一个带有如下csproj文件的项目:

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

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <AssemblyName>demo_psmodule</AssemblyName>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="PowerShellStandard.Library" Version="5.1.0-preview-06">
      <PrivateAssets>All</PrivateAssets>
    </PackageReference>
  </ItemGroup>

</Project>
我希望模块在linux容器上导出cmdlet,就像在Windows计算机上一样。要实现这一目标,我需要改变什么

更新 问题在于我用来构建容器的dockerfile:

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY [ "demo-psmodule.csproj", "src/" ]
RUN dotnet restore "src/demo-psmodule.csproj"
COPY . .
RUN dotnet publish "src/demo-psmodule.csproj" -c Release -o /app/demo_psmodule

FROM mcr.microsoft.com/powershell:ubuntu-18.04 AS app
WORKDIR /app
COPY --from=build /app .

dockerfile没有将csproj文件复制到与源代码文件相同的位置。这已成功生成,但生成了一个空dll。导入到PowerShell中时也没有任何错误,但显然不包含要导出的cmdlet。更正(和简化)的dockerfile:

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY demo-psmodule.csproj .
RUN dotnet restore demo-psmodule.csproj
COPY . .
RUN dotnet publish demo-psmodule.csproj -c Release -o /app/demo_psmodule

FROM mcr.microsoft.com/powershell:ubuntu-18.04 AS app
WORKDIR /app
COPY --from=build /app .
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY demo-psmodule.csproj .
RUN dotnet restore demo-psmodule.csproj
COPY . .
RUN dotnet publish demo-psmodule.csproj -c Release -o /app/demo_psmodule

FROM mcr.microsoft.com/powershell:ubuntu-18.04 AS app
WORKDIR /app
COPY --from=build /app .