2009-07-26 8 views
4

Ich habe eine Lösung erstellt, die alle meine Projekte einschließlich der Dotfuscator-Projekte und Setup-Projekte enthält. Einige Dotfuscator-Projekte verschleiern nur einige Assemblys, ohne ihre Referenzen zu beeinflussen. Beim Erstellen von Visual Studio funktioniert das großartig. Allerdings, wenn ich ein Team Build laufen lasse, erhalte ich folgende Fehlermeldung:Team Build und 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:

Die externe Montage ist Referenzen von der Versammlung verschleiert werden, aber es ist nicht Teil des Verschleierungs Projekts.

Antwort

3

Die referenzierte Assembly muss nicht Teil des Dotfuscator-Projekts sein, muss jedoch für Dotfuscator zum Lesen verfügbar sein. Ich vermute, dass sich die referenzierte Assembly entweder im selben Verzeichnis wie Ihre Eingabeassemblys auf Ihrer Workstation, im Pfad Ihrer Workstation oder im GAC befindet. Es ist wahrscheinlich, dass sich die referenzierte Assembly nicht auf Ihrem Build-Server befindet (oder von Dotfuscator nicht lokalisierbar ist). Sie können angeben, wo Dotfuscator zusätzlich beim Auflösen von referenzierten Assemblys suchen wird.

Die referenzierte Assembly wird auf dem Buildserver benötigt, damit Dotfuscator erfolgreich verschleiert werden kann. Die beste Möglichkeit besteht entweder darin, sicherzustellen, dass sich die referenzierte Assembly im selben Verzeichnis wie die Input Assemblies befindet oder einen benutzerdefinierten Assembly Load Path verwendet.

Außerdem können Sie in der Version 4.5.1200 neu den Ladepfad Ihrer Benutzerdefinierten Assembly durchsuchen und nicht erst danach suchen.

+1

Wie ich schon sagte, die referenzierten Baugruppen sind weitere Projekte in der Lösung. Sie werden normalerweise automatisch in den gleichen Ordner der Eingabeassemblys kopiert, wenn ich mit Visual Studio kompiliere. Beim Kompilieren mit Team Build scheinen sie jedoch nicht vorhanden zu sein. Ich kann auch nicht die UserDefined Pfade verwenden, da ich den Pfad nicht kenne - TeamBuild ändert es bei jeder Kompilierung .... – SaguiItay

0

C: \ Programme \ MSBuild \ PreEmptive \ Dotfuscator \ 4.0 \ PreEmptive.Dotfuscator.Targets

Diese Baugruppe auf dem gleichen Server wie Ihre Build-Agent-Maschine liegen.

In einfachen Worten, vorausgesetzt, die TFSServer ist Ihr MAchine Name Daten Tier (Quelldateien) sowie Build-Maschine dann Dotfuscator Zieldateien zugänglich zu benötigen.

einfach installieren Dotfuscator auf dem ** TFSServer Maschine und der Weg wird alongwith den zugehörigen Zieldateien zugänglich geworden. **