2009-07-26 18 views
4

J'ai créé une solution qui inclut tous mes projets, y compris les projets Dotfuscator et les projets d'installation. Certains projets Dotfuscator ne masquent que certains assemblages, sans affecter aucune de leurs références. Lors de la construction à partir de Visual Studio, cela fonctionne très bien. Cependant, quand je lance une construction d'équipe, je reçois l'erreur suivante:Team build et Dotfuscator

C:\Program Files\MSBuild\PreEmptive\Dotfuscator\4.0\PreEmptive.Dotfuscator.Targets(20,3): error : Couldn't load external type because its assembly can't be found:

L'assemblage externe est des références par l'ensemble étant brouillées, mais il ne fait pas partie du projet d'obscurcissement.

Répondre

3

L'assembly référencé ne doit pas nécessairement faire partie du projet Dotfuscator, mais il doit être disponible pour être lu par Dotfuscator. Je soupçonne que l'assembly référencé se trouve dans le même répertoire que vos assemblys d'entrée sur votre poste de travail, dans le chemin de votre poste de travail ou dans le GAC. Il est probable que l'assembly référencé ne soit pas sur votre serveur de construction (ou ne soit pas localisable par Dotfuscator). Vous pouvez fournir User Defined Assembly Load Paths où Dotfuscator apparaîtra également lors de la tentative de résolution des assemblys référencés. L'assembly référencé sera requis sur le serveur de construction pour que Dotfuscator réussisse à masquer et le meilleur moyen est de s'assurer que l'assembly référencé se trouve dans le même répertoire que les assemblys d'entrée ou d'utiliser un chemin de chargement d'assembly défini par l'utilisateur.

En outre, nouveau dans la version 4.5.1200, vous pouvez faire en sorte que votre chemin de chargement de l'assemblage défini par l'utilisateur soit d'abord recherché, plutôt que de les rechercher en dernier.

+1

Comme je l'ai dit, les ensembles sont référencés d'autres projets dans la solution. Ils sont généralement automatiquement copiés dans le même dossier des assemblys d'entrée lorsque je compile à l'aide de Visual Studio. Cependant, lors de la compilation en utilisant Team Build, ils ne semblent pas être là. Je ne peux pas non plus utiliser les chemins UserDefined, car je ne connais pas le chemin - TeamBuild le change à chaque compilation .... – SaguiItay

0

C: \ Program Files \ MSBuild \ PreEmptive \ Dotfuscator \ 4.0 \ PreEmptive.Dotfuscator.Targets

Cet ensemble doit se trouver sur le même serveur que votre Construire la machine de l'agent.

En mots simples, en supposant que le TFSServer est votre nom Tier Data MAchine (contenant les fichiers source) ainsi que machine Construire puis les fichiers cibles de Dotfuscator doivent avoir accès.

Il suffit d'installer sur le Dotfuscator ** TFSServer machine et le chemin deviendra accessible à ce alongwith les fichiers cibles associés. **