我寫了一個方法來通過HTTP POST提交錯誤報告。我運行OSX-Lion和MonoDevelop。該代碼在從MonoDevelop調用應用程序時起作用。當我運行的.app它拋出一個異常:HttpWebRequest在MonoDevelop之外崩潰
System.TypeInitializationException: An exception was thrown by the type initializer for System.Net.WebRequest ---> System.DllNotFoundException: libc.dylib
at (wrapper managed-to-native) System.Platform:uname (intptr)
at System.Platform.get_IsMacOS() [0x00000] in <filename unknown>:0
at System.Net.WebRequest..cctor() [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at ch.fangorn.LIF.Access.SubmitCrash.Submit (Int32 projectId) [0x00000] in <filename unknown>:0
此刻,我叫不直接通過捕捉提交方法。因爲它在調試器連接時工作,所以我陷入困境。我到目前爲止已經試過:
- 建立一個單一的應用程序包(創建Mac安裝)
- 建立與目標平臺的x86一切
- 單和MonoDevelop的 beta版
的代碼IMO導致崩潰。
HttpWebRequest hwr = WebRequest.Create(turi) as HttpWebRequest;
string authInfo = user + ":" + password;
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
hwr.Headers["Authorization"] = "Basic " + authInfo;
hwr.Method = "POST";
hwr.ContentType = "text/xml";
hwr.ContentLength = encData.Length;
Stream send = hwr.GetRequestStream();
send.Write(encData, 0, encData.Length);
send.Close();
hwr.GetResponse();
的MonoDevelop:2.8.5
單聲道:2.10.8
你試過看你的參考嗎?我有必要在MonoDevelop中刪除和讀取對System.Web和其他引用的幾次引用,儘管它們的舊版本具有相同的奇怪錯誤模式。 – 2011-12-30 15:13:15
我用min引用構建了一個縮小的樣本。現在我得到了一個更好的錯誤信息:System.DllNotFoundException:libc.dylib – Ganwell 2011-12-30 15:41:28
啊,那好多了。請嘗試更新所有dylib緩存 - 我不是OSX的傢伙,但在最近更新的系統上構建Gtk#/ Mono應用程序時遇到類似的問題。 – 2011-12-30 15:48:05