2017-02-14 3 views
2

J'ai récemment obscurci une DLL en utilisant Dotfuscator CE avec Visual Studio 2015 Update 3. Voici le fichier Dotfuscator.xml que j'ai utilisé.Lecture à partir du fichier Settings.settings Après l'obfuscation

<?xml version="1.0" encoding="utf-8" standalone="no"?> 
<!DOCTYPE dotfuscator SYSTEM "http://www.preemptive.com/dotfuscator/dtd/dotfuscator_v2.3.dtd"> 
<dotfuscator version="2.3"> 
    <propertylist> 
    <property name="SourceDirectory" value="This Path Will Be Replaced By Visual Studio" /> 
    <property name="SourceFile" value="This Filename Will Be Replaced By Visual Studio" /> 
    </propertylist> 
    <input> 
    <asmlist> 
     <inputassembly> 
     <option>library</option> 
     <file dir="${SourceDirectory}\" name="${SourceFile}" /> 
     </inputassembly> 
    </asmlist> 
    </input> 
    <output> 
    <file dir="${SourceDirectory}\" /> 
    </output> 
</dotfuscator> 

Maintenant, le problème est, l'ensemble obscurcie contient des informations stockées dans Settings.settings. fichier, lorsque mon code tente d'accéder aux données du fichier de paramètres, il échoue avec cette exception suivante.

Les paramètres propriété 'ProxyTestURL' n'a pas été trouvé

Voici la syntaxe à lire réglage:

Dim strURI As String = My.Settings.ProxyTestURL 

Je sais qu'il ya une question similaire "Dotfuscator: erreur après obscurcissement" mais il ne semble pas être complet ou robuste, bien que je mette mes commentaires là aussi mais ici j'attendrais une deuxième opinion et une solution plus robuste au lieu de renommer mes littéraux de fichiers de paramètres aux noms obfuscated (comme mentionné là).

+1

Pour toute personne qui regarde, l'autre question qu'il mentionne est à http://stackoverflow.com/questions/17215726/dotfuscator-error-after-obfuscation –

Répondre

1

Vous devez exclure My.Settings du renommage. Les instructions pour le faire sont au the docs.

+1

Notez que je crois que l'interface graphique appliquera automatiquement cette exclusion; vous pourriez avoir de meilleurs résultats en commençant par l'interface graphique, plutôt qu'en essayant de modifier manuellement un fichier de configuration. –

+0

Merci @Nathan pour la réponse. J'ai utilisé l'interface graphique et ajouté manuellement le fichier MySettings dans la liste d'exclusion; et problème résolu. Cependant, j'utilise toujours CLI dans la commande post build. Sinon, dès que ma DLL est construite par Visual Studio, l'interface graphique s'ouvre l'une après l'autre sur les 35 DLL (même si le paramètre/q lui est passé), et je dois appuyer à nouveau sur le bouton build dans l'interface graphique. Pour éviter cette étape supplémentaire, j'utilise CLI dans l'événement post-build. –

+0

Oui, cela a du sens - désolé pour la confusion. En général, il est plus simple de considérer l'interface graphique comme un générateur de fichier de configuration et l'interface de ligne de commande comme l'obfuscateur réel. Ils peuvent chacun faire n'importe quel travail, mais il semble plus naturel de travailler avec eux de cette façon. –