2017-10-04 119 views
0

我最近在嘗試設置Aspose的許可證文件時遇到了一個異常。我的問題不是拋出異常,而是堆棧跟蹤的格式。前兩個調用堆棧位置將所有名稱替換爲下劃線。堆棧跟蹤在調用堆棧中用下劃線替換名稱

System.NullReferenceException: Object reference not set to an instance of an object. at _ ._(Stream _) at _ ._(String _, Assembly _) at Aspose.Pdf.License.SetLicense(String licenseName)

是什麼原因導致他們出現這樣?我最初的想法是混淆,但在搜索時,我發現使用重命名的方法和類型的代碼混淆了,而不是完全刪除名稱。

+0

這很可能是由於變量名不是(必須)轉換成編譯後的程序集,特別是在編譯發佈時。 – HimBromBeere

+0

不是直接發佈到你的問題,但[this](https://stackoverflow.com/questions/43017481/how-to-read-interpret-a-raw-c-sharp-stack-trace-correctly)可能會給你有些洞察力 –

+1

它是混淆的代碼。對於任何執照檢查來說,這當然並不罕見。看到產品無法正常工作,即使您擁有良好的許可證,並且需要一個通用網站以獲得支持,始終是停止使用該產品的一個很好的理由。人生如此短暫。 –

回答

0

Aspose庫肯定是通過一些手段混淆。在dotPeek中打開庫,所有的變量和屬性都丟失了。

例子:

this. = value;

不是一個真正的完整的答案,因爲它並不能說明使用什麼工具,以及如何實際處理變量映射,但足以關閉。