Izogibajte se zajebavanju sklopov, ki uporabljajo razrede v imenski prostor System.Xml v Dotfuscatorju, ki bodo povzročili napake

Stran posodobljena :
Datum ustvarjanja strani :

Preverjanje simptomov

Ustvarite nov projekt. Lahko je Obrazec Windows ali WPF, vendar tukaj ustvarjamo aplikacijo WPF.

Napišite kodo za uporabo razredov, ki spadajo v imenski prostor System.Xml. Tukaj uporabljamo razrede »XmlDocument« in »XmlNode« na naslednji način.

using System.Windows;
using System.Xml;

namespace DotfuscatorTest
{
  /// <summary>MainWindow.xaml の相互作用ロジック</;summary>
  public partial class MainWindow : Window
  {
    public MainWindow()
    {
      InitializeComponent();

      XmlDocument doc = new XmlDocument();
      doc.LoadXml("<a></a>");
      XmlNode node = doc.FirstChild;
    }
  }
}

System.Xml 名前空間のクラスを使用したコード

Po gradnji izberite »PreEmptive Dotfuscator and Analytics« v orodjih v meniju in ga zaženite.

PreEmptive Dotfuscator and Analytics を起動

Dodajte .exe, ki ste jo ustvarili in jo zgradili.

.exe ファイルを追加

Nato se prikaže naslednje sporočilo o napaki in gradenju ne uspe.

To ni upravljani modul (C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone71\ja\System.Xml.dll). Napaka pri graditvi.

ビルドエラー

Poskušal sem ugotoviti, kaj povzroča to napako, vendar nisem našel jasnega odgovora. Glede na to, da na angleškem mestu ni informacij in da je pot System.Xml.dll ima "en", lahko ugibate, da gre za edinstveno napako, ki ni angleško okolje.

Zaodložje

Čeprav se projekt sklicuje na odjemalec Windows System.Xml.dll, ko gradite z Dotfuscatorjem, se sklicuje na sestavo v sistemu Windows Phone System.Xml.dll zato smo na silo kopirali Sistem.Xml lokalno.dll Rad bi se izognil napakam pri graditvi, tako da bi se sklicevanje na to.

Odprite sklice projekta, z desno tipko miške kliknite System.Xml in izberite Lastnosti.

プロパティを選択

Spremenite element v lokalni kopiji v True.

ローカル コピーの項目を True に変更

Ko gradite v tem stanju, je »System.Xml.dll« izhod skupaj z .exe datoteko.

System.Xml.dll が出力される

Odprite Dotfuscator in dodajte »System.Xml.dll« skupaj s sestavo, ki jo želite. To ovira sestavljanje tako, da se ne nanaša na DLL nameščenega okvirja in vidi lokalno DLL.

Upoštevajte, da lastnost System.Xml .dll način knjižnice. Brez tega preverjanja lahko sistem.xml .dll tudi zamaknjena, imena razredov, ki jih sklicuje, pa se lahko spremenijo. Seveda, če se ime razreda spremeni, ne boste mogli normalno zagnati aplikacije.

System.Xml.dll を追加

Če gradite v tem stanju, se bo uspešno končala.

ビルド成功

Lahko ste prepričani, da se zamahnjena aplikacija zažene sama brez težav.

アプリケーションを起動

Vsebina, predstavljena tukaj, je nekoliko zapleteno delo, zato ne moremo zagotoviti, da bo učinkovita tudi za sklope, ki so bili ustrezno zgrajeni. Tudi če je graditev uspešna in jo je mogoče zagnati, ni mogoče zanikati možnosti, da bo padla pri izvajanju določenega procesa, zato pred sproščanjem ustrezno preverite operacijo.

Tudi če ni omejen na imenski prostor System.Xml, je obfuscation občutljiva funkcija, ki jo morate prepričati, da je skladnost ohranjena. Zlasti pri uporabi odsevov lahko vplivajo na I/I povezane stvari, kot so datoteke I/I in interakcija z zunanjimi API-ji, zato bodite previdni.