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