.net core 哈马林,麦克https://localhost httplclient

.net core 哈马林,麦克https://localhost httplclient,.net-core,localhost,macos-mojave,self-signed,xamarin.mac,.net Core,Localhost,Macos Mojave,Self Signed,Xamarin.mac,我有一个本地webapi,我使用自签名证书在pc上运行。我可以使用浏览器()访问webapi(以.net core编写),但当我在Mac OS Mojave上使用httpclient时,我遇到了一个例外(High Sierra和Catalina工作) System.DllNotFoundException:libc.dylib程序集:类型:成员:(null) at(包装器管理为本机)System.Net.NetworkInformation.CommonUnixIPGlobalPropertie

我有一个本地webapi,我使用自签名证书在pc上运行。我可以使用浏览器()访问webapi(以.net core编写),但当我在Mac OS Mojave上使用httpclient时,我遇到了一个例外(High Sierra和Catalina工作)

System.DllNotFoundException:libc.dylib程序集:类型:成员:(null)
at(包装器管理为本机)System.Net.NetworkInformation.CommonUnixIPGlobalProperties.getdomainname(字节[],int)
位于System.Net.NetworkInformation.CommonUnixIPGlobalProperties.get_DomainName()[0x0000b]中:0
在System.Net.CookieContainer..ctor()[0x0003f]中:0
在System.Net.Http.MonoWebRequestHandler.get_CookieContainer()[0x0000a]中:0
在:0中的System.Net.Http.MonoWebRequestHandler.CreateWebRequest(System.Net.Http.HttpRequestMessage请求)[0x000f5]处
在System.Net.Http.MonoWebRequestHandler.SendAsync(System.Net.Http.HttpRequestMessage请求,System.Threading.CancellationToken CancellationToken)[0x0003e]中:0
在System.Net.Http.HttpClient.SendAsyncWorker(System.Net.Http.HttpRequestMessage请求、System.Net.Http.HttpCompletionOption completionOption、System.Threading.CancellationToken CancellationToken)[0x000e8]中:0
在Mac_Installer.ViewController.Timer_处(System.Object sender,System.Timers.ElapsedEventArgs e)[0x000bd]in:0
我已经读过了,似乎我需要将DYLD\u FALLBACK\u LIBRARY\u路径设置为/usr/lib(我可以看到文件-libc.dylib-在那里),我认为我应该将其作为环境变量添加到info.plist中,但它仍然失败,或者我做得不对


任何相关帮助。

如果启用了强化运行时,请尝试将“允许DYLD环境变量授权”(com.apple.security.cs.Allow DYLD Environment Variables)添加到您的授权.plist中。

我只是复制libc.dylib。转到app MonoBundle或Resources文件夹。可在此处找到Dll:

另一个解决方案是导入lib main类,如下所示:

 static class MainClass
{
    static void Main(string[] args)
    {
        //solved mojave notfound dll exception
        IntPtr p = Dlfcn.dlopen("/usr/lib/libc.dylib", 0);

        NSApplication.Init();
        NSApplication.SharedApplication.Delegate = new AppDelegate();
        NSApplication.Main(args);
    }
}

请注意,我也在Terminal中设置了它,但它仍然会抛出一个例外进行进一步的调查,如果我将libSystem.B.dylib复制到app MonoBundle或Resources文件夹中,并将该文件重命名为libc.dylib,它正在工作,但我不想在包中嵌入库文件
 static class MainClass
{
    static void Main(string[] args)
    {
        //solved mojave notfound dll exception
        IntPtr p = Dlfcn.dlopen("/usr/lib/libc.dylib", 0);

        NSApplication.Init();
        NSApplication.SharedApplication.Delegate = new AppDelegate();
        NSApplication.Main(args);
    }
}