2017-10-06 67 views
0

我們在Obfuscar混淆的dll中運行.NET應用程序,引用My.Computer。看起來這些引用在運行時拋出異常。例如:Obfuscar .NET混淆突破對My.Computer的引用

代碼:

Dim str As String = My.Computer.Name 

消息:

The type initializer for 'a.aa' threw an exception. 

內部異常:

System.MissingFieldException: Field not found: 'a`1.W'. 
    at a.aa.a`1..ctor() 
    at a.aa..cctor() 

從這些錯誤信息,它看起來像Obfuscar被混淆的參考My.Computer.Name 。 (.NET反射器顯示aa.A.Name。)我不確定這是如何合理的,因爲它是一個「外部」引用。

使用不同的方式來獲取計算機名稱似乎工作,但我們有很多在我們的代碼中引用My.Computer,這將是很好的弄清楚如何讓Obfuscar不會破壞這些,而不是必須tip手around腳。

我想我正在尋找一個Obfuscar XML條目來跳過這些引用,除非任何人有任何更好的想法。

回答

1

如果任何人發現這一點,我們的解決方案是以下標誌設置爲false:

<Var name="HidePrivateApi" value="false" /> 

這顯然降低了一些模糊的安全性,但它解決了我們的問題現在。

+0

我打算這樣做,因爲通常OP會添加一條評論,說明他們解決問題而不解釋原因,而且帖子變得毫無用處和浪費時間。謝謝。 –

+0

感謝您的積極反饋! – PerpetualStudent