2016-10-21 6 views
2

Ich bin eine MSDN-Site https://msdn.microsoft.com/en-us/library/hh977082(v=vs.107).aspx für die Verschleierung meiner C# -Code mit dem Dotfuscator, die kostenlos mit VS kommt.Wie Umbenennung aller Klassen zu verhindern, Schnittstelle in Dotfuscator

In meinen C# -Projekten habe ich Dependency Injection (Castle.Windsor) verwendet, so dass meine Anwendung nach der Verschleierung abgestürzt ist.

Ich denke darüber nach, keine meiner Klassen und Schnittstellennamen einschließlich Konstruktoren umbenennen, aber lassen Sie ihre Methoden, Variablen umbenennen würde das Problem lösen. Ich versuche, die Ausschlussregel dafür im Dotfuscator zu setzen, aber immer noch nicht dazu in der Lage.

Könnten Sie uns bitte wissen lassen, wie Sie die Ausschlussregel festlegen, die das Umbenennen von Klassen und Schnittstellennamen zusammen mit ihren Konstruktoren verhindert, aber ihre Methoden und Variablen in dotfuscator umbenennen lassen? Ich verwende den Dotfuscator, der mit VS2015 geliefert wird.

Antwort

1

Die Renaming documentation for Dotfuscator Community Edition enthält allgemeine Anweisungen zum Umbenennen von Ausschlüssen wie dieser. In diesem Fall sollten Sie einen Typausschluss hinzufügen. Das schließt nur die Typen selbst (und ihre Konstruktoren) aus, ohne irgendwelche Methoden/Felder/Eigenschaften auszuschließen. Typausschlüsse gelten auch für Schnittstellen.

Wenn Sie versuchen, alle Typen und Schnittstellen auszuschließen, können Sie die Ausschlussregel als Regel für reguläre Ausdrücke markieren und .* verwenden, um alle Namen zu finden. Wenn Sie nur eine Teilmenge von Typen ausschließen möchten, achten Sie darauf, vollständig qualifizierte Namen anzugeben.

Sie können die Schaltfläche Vorschau verwenden, um zu sehen, was ausgeschlossen wird. (Beachten Sie, dass die Konstruktoren nicht als ausgeschlossen angezeigt werden. Sie werden jedoch beim Erstellen ausgeschlossen.)

Schließlich enthält die Pro documentation for excluding by Type weitere Details zur Funktionsweise einiger dieser Funktionen. Es kann daher hilfreich sein, dort nachzuschauen , auch. In den meisten Fällen ist das Feature zwischen Pro und Community identisch.

Volle Offenbarung: Ich arbeite für PreEmptive Solutions.

+0

Danke Nathan. Tatsächlich gibt es 5 Bibliotheken und 2 exe-Projekte in meiner Lösung und vielen Klassen. Es sieht so aus, als ob mit der Ausschlußregel das Problem behoben wurde, aber ein anderes Problem auftritt, da es viele Klassen gibt, die von mehreren Projekten verwendet werden. Es scheint, dass ich alle Klassen finden muss, die ausgeschlossen werden müssen - diese Methode scheint in meinem Fall ein wenig beschwerlich zu sein. Also entschied ich mich, den "Bibliotheksmodus" für jede Bibliothek und Exe zu verwenden. Jetzt scheint es zu funktionieren. Ist "Bibliotheksmodus" für diesen Fall geeignet? – Prakash

+0

Der Bibliotheksmodus schließt automatisch alle öffentlichen Mitglieder in einer Assembly aus, also ist es wahrscheinlich das, was Sie für Ihre Bibliotheken wollen. Es ist auch gut für die ausführbaren Dateien, aber Sie könnten am Ende weniger umbenennen, was Sie bevorzugen würden. Wenn dies der Fall ist, können Sie den Bibliotheksmodus deaktivieren und manuelle Ausschlüsse für diese Assemblys verwenden. –

Verwandte Themen