是否可以将依赖于System.Net.Http.WinHttpHandler的库部署到Linux

是否可以将依赖于System.Net.Http.WinHttpHandler的库部署到Linux,linux,cross-platform,.net-core,nuget-package,.net-standard,Linux,Cross Platform,.net Core,Nuget Package,.net Standard,我正在考虑使用支持NETSTANDARD1.3的。当我添加包时,我看到它依赖于这个包,而这个包又添加了win32 primitives包 我找不到任何文档说明这些包在Linux上是如何工作的。我认为它们不会工作,但它们可能提供一个垫片层 有人对这些软件包有经验吗 编辑: 作为自包含部署部署部署到Ubuntu会导致以下结果 未处理的异常:System.TypeInitializationException:“System.Net.Http.CurlHandler”的类型初始值设定项引发了异常。--

我正在考虑使用支持NETSTANDARD1.3的。当我添加包时,我看到它依赖于这个包,而这个包又添加了win32 primitives包

我找不到任何文档说明这些包在Linux上是如何工作的。我认为它们不会工作,但它们可能提供一个垫片层

有人对这些软件包有经验吗

编辑:

作为自包含部署部署部署到Ubuntu会导致以下结果

未处理的异常:System.TypeInitializationException:“System.Net.Http.CurlHandler”的类型初始值设定项引发了异常。-->System.TypeInitializationException:“Http”的类型初始值设定项引发异常。-->System.TypeInitializationException:“HttpInitializer”的类型初始值设定项引发异常。-->System.DllNotFoundException:无法加载DLL“System.Net.Http.Native”:找不到指定的模块。
(来自HRESULT的异常:0x8007007E)
在Interop.HttpInitializer.ensureUrlisinizalized()处
在Interop.HttpInitializer..cctor()处
---内部异常堆栈跟踪的结束---
在Interop.HttpInitializer.Initialize()处
在Interop.Http..cctor()上
---内部异常堆栈跟踪的结束---
在Interop.Http.GetSupportedFeatures()上
在System.Net.Http.CurlHandler..cctor()上
---内部异常堆栈跟踪的结束---
在System.Net.Http.CurlHandler..ctor()上
在Consul.consultClient.consultClientConfigurationContainer..ctor()上
在执政官处,执政官客户端执行官(操作'1 configOverride,操作'1 clientOverride,操作'1 handlerOverride)
位于scratchpad.Program.Main(字符串[]args)
中止(堆芯转储)

Linux实际上支持这种依赖关系,因为它是.NETStandard的一部分,并且为CURL处理程序提供了垫片

部署应用程序确实会导致错误,如原始帖子所示,但安装SDK解决了这些问题


旁注:我不认为我需要SDK来运行一个自包含的部署。

我认为你不需要安装SDK,因为我可以让它工作。你使用的是哪个版本的Ubuntu?您是否遵循中详述的步骤(也在下文详述)

我之所以这么说,是因为我构建了一个测试应用程序,在没有安装SDK的情况下运行良好:

  • 按照上述指南编辑您的
    project.json
    ,并删除
    “platform”:true
    。添加一个
    runtimes:{}
    元素,对我来说是:
    “运行时”:{
    “win81-x64”:{},
    “ubuntu.14.04-x64”:{}
    }

  • 完成后,我可以进行
    dotnet还原
    dotnet build-r ubuntu.14.04-x64
    这两项操作,但只在目录中删除了3个文件,没有SDK无法运行

  • 我做了
    dotnet publish-c release-r ubuntu.14.04-x64
    ,启动了一个运行ubuntu 14.04的Vagrant box,
    apt get install libunwind8
    ,然后运行我的程序:
    /Vagrant/bin/release/netcoreapp1.0/ubuntu.14.04-x64/publish/ConsoleApp1
    。该程序所做的只是位于的README.md中的示例函数,在我在VM中启动了一个concur副本后,它能够正确打印“Hello Concur”
  • 我认为是“平台”:真正的配置导致了问题。我已经转到.CSPROJ项目结构,而这不再是一个设置。不知道它现在在哪里!