如何发布依赖于特定于平台的c#Nuget软件包的PowerShell gallery模块?

如何发布依赖于特定于平台的c#Nuget软件包的PowerShell gallery模块?,c#,powershell,nuget,C#,Powershell,Nuget,我想将PowerShell模块发布到PowerShell gallery,该模块依赖于 在过去,我通过简单地捆绑依赖项的跨平台DLL来实现这一点。 但是,对于LibGit2Sharp,这不起作用,因为它生成的二进制文件是特定于平台的,并且只有在针对特定平台构建时才能加载(请参阅) 我是否可以从NuGet解析正确的工件,然后懒洋洋地下载它而不是捆绑它?或者我应该在NuGet上发布PowerShell模块本身吗?AFAIK PowerShell模块仍然不支持非PowerShell依赖项,因此发布模块

我想将PowerShell模块发布到PowerShell gallery,该模块依赖于

在过去,我通过简单地捆绑依赖项的跨平台DLL来实现这一点。 但是,对于LibGit2Sharp,这不起作用,因为它生成的二进制文件是特定于平台的,并且只有在针对特定平台构建时才能加载(请参阅)


我是否可以从NuGet解析正确的工件,然后懒洋洋地下载它而不是捆绑它?或者我应该在NuGet上发布PowerShell模块本身吗?

AFAIK PowerShell模块仍然不支持非PowerShell依赖项,因此发布模块没有任何帮助。对于32位与64位这一公认较为有限的问题,我过去所做的是将包作为虚拟C#项目的一部分进行恢复,然后作为构建步骤将其输出复制到我的PowerShell模块。选择要加载的正确版本是在运行时完成的。但是,在这种情况下,PowerShell是加载库的工具,因此我很容易告诉它它们在哪里。如果您正在加载的库是由另一个模块间接定位的,这就更复杂了。我一直在考虑这样做——我的共同点是,我必须以编程方式为用户的操作系统和arch构建库,但文档明确指出RID不应以编程方式构建。我甚至不知道如何可靠地检测所有Linux发行版。或者,我可以在第一次运行时运行dotnet恢复(但我仍然需要RID)。但是我不想要求用户安装.NET SDK。。。