2009-05-14 6 views
2

Après avoir lu this post et rencontrant le même problème (lors d'une tentative de construire les manifestes):Est-il possible d'utiliser .NET Reactor avec le déploiement ClickOnce?

MSB3171: Problem generating manifest. Could not load file or assembly or one of its dependencies. An attempt was made to load a program with an incorrect format. 

Je voudrais savoir si quelqu'un a eu du succès à l'aide du réacteur .NET (chiffrement/outil obfuscation) avec ClickOnce déploiement. J'ai chaluté le filet toute la matinée en essayant différentes techniques, et certaines techniques fonctionnent avec Dotfuscator et Xenocode donc je lis, mais je ne peux pas obtenir n'importe quel amour de .NET Reactor.

Je pense vraiment que ce message est reçu parce que ClickOnce tente de générer un manifeste contre le fichier crypté (dont on ne peut même être ouvert à l'intérieur réflecteur .NET) ...

Quelles options dois-je ici?

Répondre

4

Nous avons rencontré le même problème avec ClickOnce et .NET Reactor. Nous avons refusé l'obscurcissement.

Oui, vous avez raison. ClickOnce besoin d'extraire la version d'assemblage, ses dépendances, fabricant, etc ... à partir d'un fichier. ClickOnce tente de charger un assembly qui n'est plus l'assembly après l'obfuscation effectuée. C'est un fichier .exe binaire régulier maintenant.

Il ya une solution de contournement horrible qui a fonctionné très bien pour moi, mais la gestion de projet a rejeté l'idée.

Créez et masquez tous vos binaires. Placez-les dans un fichier zip (ou autre) sur l'événement AfterBuild. Marquez votre fichier zip comme "Fichier de données" (Paramètres du projet -> Publier -> Fichiers d'application ... -> Statut de publication -> Fichier de données). Après cela, créez un assemblage exécutable unique (.exe) non obfusqué. Ce qui déballe simplement et exécute l'un de vos exécutables obfusqués. Le programme d'installation de ClickOnce Setup pour ce nouvel exécutable.

EDIT: s'il vous plaît demander si je n'étais pas assez clair.

Questions connexes