Vältige sõlmede hägustumist, mis kasutavad Dotfuscatori nimeruumis System.Xml klasse, mis põhjustavad vigu
Sümptomite kontrollimine
Looge uus projekt. See võib olla Windowsi vorm või WPF, kuid siin loome WPF-rakenduse.
Kirjutage kood, et kasutada klasse, mis kuuluvad nimeruumi System.Xml. Siin kasutame klasse "XmlDocument" ja "XmlNode" järgmiselt.
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;
}
}
}
Pärast ehitamist valige menüü tööriistadest "PreEmptive Dotfuscator and Analytics" ja käivitage see.
Lisage loodud .exe fail ja koostage see.
Seejärel kuvatakse järgmine tõrketeade ja järk nurjub.
See ei ole hallatav moodul (C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone71\ja\System.Xml.dll). Koostage tõrge.
Üritasin teada saada, mis seda viga põhjustas, kuid ma ei leidnud selget vastust. Arvestades, et ingliskeelsel saidil ei ole teavet ja et System.Xml.dll teel on "en", võite arvata, et see on ainulaadne viga peale inglise keskkonna.
Lahendus
Kuigi projekt viitab Windowsi kliendisüsteemile System.Xml.dll, viitab see Dotfuscatoriga koostet windows phone system.xml.dll nii et kopeerisime system.xml-i sunniviisiliselt kohalikult.dll Ma tahaksin vältida ehitusvigu, viidates sellele.
Avage projekti viited, paremklõpsake valikut System.Xml ja valige Atribuudid.
Muutke kohalikus eksemplaris olev üksus väärtuseks Tõene.
Selles olekus ehitamisel väljastatakse "System.Xml.dll" koos .exe failiga.
Avage Dotfuscator ja lisage "System.Xml.dll" koos assembleriga, mida soovite hägustada. See segab assembleri nii, et see ei viita paigaldatud raamistiku DLL-ile ja näeb kohalikku DLL-i.
Pange tähele, et atribuut System.Xml.dll kontrollib teekirežiimi. Ilma selle kontrollita võib ka System.Xml.dll hägustada ja klassinimed, millele see viitab, võivad muutuda. Muidugi, kui klassi nimi muutub, ei saa te rakendust normaalselt käivitada.
Kui ehitate selles olekus, lõpetab see edukalt.
Võite olla kindel, et hägune rakendus käivitatakse iseenesest ilma probleemideta.
Siin esitatud sisu on mõnevõrra keeruline lahendus, nii et me ei saa garanteerida, et see on tõhus isegi vastavalt ehitatud sõlmede puhul. Isegi kui ehitamine on edukas ja seda saab alustada, ei saa eitada võimalust, et see langeb konkreetse protsessi läbiviimisel, nii et palun kontrollige operatsiooni enne vabastamist korralikult.
Isegi kui see ei piirdu nimeruumiga System.Xml, on hägustamine tundlik funktsioon, mida peate veenduma, et järjepidevus säilib. Eelkõige peegelduse kasutamisel mõjutavad see tõenäoliselt I/O-ga seotud asju, nagu fail I/O ja suhtlemine väliste API-dega, seega olge ettevaatlik.