Frage

Wenn man a veröffentlichen wird Clickonce Version, wie kann es verschleiert werden? Dotfuscator?

War es hilfreich?

Lösung

Sie können die kommerzielle Version von DOTFuscator verwenden, um eine ClickOnce -Anwendung automatisch zu verschleiern, indem Sie das Bereitstellungsmanifest ("foo.application") als Eingabe für Ihr DOTFuscator -Projekt hinzufügen. Mit DOTFUScator können Sie den in der ClickOnce -Anwendung enthaltenen Baugruppen alle erforderlichen Ausschlüsse hinzufügen, und erstellen aktualisierte Bereitstellungs- und Anwendungsleichterungen, die die verschleierten Baugruppen enthalten.

Die kostenlose Version von DOTFUScator, die in Visual Studio (einschließlich Visual Studio 2010) enthalten ist, verfügt nicht über die Funktion, um automatisch ClickOnce -Anwendungen zu verschleiern. Um eine funktionierende verschleierte ClickOnce -Anwendung zu erhalten, müssen Sie die ClickOnce -Manifeste neu erstellen oder aktualisieren, da die Verschleierung die Signaturen der Baugruppen ändert.

Sie können verwenden mage.exe oder mageUi.exe (In der Windows/.NET SDK enthalten), um die ClickOnce -Manifeste zu aktualisieren. Wenn Sie mage.exe verwenden, müssen Sie sich darüber im Klaren sein, dass Sie die Option "Verwenden Sie .Deploy -Dateierweiterung" in Ihren ClickOnce -Optionen nicht verwenden können, da sie nicht erkannt wird.

Unter der Annahme, dass Ihre ClickOnce -Anwendung als "Foo" bezeichnet wird und in Version 1.0.0.0 ist. Der Prozess, dem Sie folgen möchten, lautet:

  1. Veröffentlichen Sie Ihre Clickonce -Anwendung in einem Verzeichnis auf der Festplatte
  2. Führen Sie Dotfuscator CE aus und fügen Sie die Baugruppen hinzu, die Sie aus dem Bin -Verzeichnis Ihres Projekts verschleiert werden möchten
  3. Die Baugruppen verschleiern. Die verschleierten Versammlungen werden standardmäßig in ein Unterverzeichnis mit dem Namen "Dotfuscated" gesteckt.
  4. Geben Sie Ihre verschleierten Versammlungen mit Sn.exe zurück (nur wenn Sie sie zunächst stark benannt haben)
  5. Kopieren Sie die verschleierten Baugruppen über die im Verzeichnis clickonce veröffentlichen Anwendungsdateien foo_1_0_0_0
  6. Aktualisieren Sie das Anwendungsmanifest und lassen Sie sie zurück:

    mage.exe -update "Anwendungsdateien foo_1_0_0_0 foo.exe.manifest" -Certfile "C: foo foo.pfx" -Password Passwort

  7. Aktualisieren Sie das Bereitstellungsmanifest und lassen Sie es zurück:

    mage.exe -update foo.application -appManifest "Anwendungsdateien foo_1_0_0_0 foo.exe.manifest" -Certfile "C: foo foo.pfx" -Password Passwort

Sie haben jetzt ein gültiges Anwendungs- und Bereitstellungsmanifest mit verschleierten Baugruppen. Sie können auch das mageUi.exe -Tool verwenden, um dieselben Aufgaben zu erledigen (und es weiß, wie man Baugruppen mit der .Deploy -Erweiterung umgehen), ist jedoch nicht so einfach zu automatisieren.

Andere Tipps

Ich habe eine ähnliche Lösung wie die von Joe Kuemerle, aber vor dem Veröffentlichungsprozess. Dies funktioniert mit der Veröffentlichung in Visual Studio und MSBUILD Befehlszeile.

Ergänzen Sie die Voraus veröffentlicht Ziel auf die Projektdatei.

<ItemGroup>
    <ClickOnceFiles Include="bin\Release\ClickOnce.*"/>
</ItemGroup>
<Target Name="BeforePublish">
    <Exec Command="{path to dotfuscator}\dotfuscator.exe Dotfuscator.xml" />
    <Exec Command="mage.exe -u bin\Release\ClickOnce.exe.manifest" />
    <Exec Command="mage.exe -u bin\Release\ClickOnce.application -AppManifest bin\Release\ClickOnce.exe.manifest" />
    <Copy SourceFiles="@(ClickOnceFiles)" DestinationFolder="obj\Release" OverwriteReadOnlyFiles="True" />
</Target>

Die ClickOnce -Dateien sind ClickOnce.application, ClickOnce.exe, und ClickOnce.exe.manifest. Mein dotfuscator.xml ist im selben Ordner mit der Projektdatei. Der Schlüssel ist der letzte Befehl, kopieren Sie die ClickOnce -Dateien in die obj Mappe.

Ich weiß nicht, ob dies in späteren Versionen von Visual Studio nur möglich ist, aber für mich funktioniert es perfekt:

  1. Erstellen Sie die ausführbare Datei in Veröffentlichung Modus
  2. Starten Sie den Exe-Modifikator Ihrer Wahl und ändern Sie die Datei unter OBJ/Release/u003Cfilename> .exe (Hinweis: Nicht Behälter/ aber OBJ/)
  3. Drück den Jetzt veröffentlichen Taste des Visual Studio, der voraussetzt, dass der letzte Build auf dem neuesten Stand war
  4. Gewinn: d

Ja, dies sind kompatible Technologien. ClickOnce konzentriert sich lediglich auf die Bereitstellung einer Anwendung und ihre zugehörigen Binärdateien an eine Zielmaschine. DOTFUScator fasst die DLL- und EXE -Dateien ab. Sie werden zusammenarbeiten, solange Sie Dotfuscator ausführen, bevor Sie die Anwendung veröffentlichen.

Wenn Sie VS2010 verwenden, verschleiert der mit ihm gelieferte Dotfuscator die Dateien und unterschreibe dann die Manifeste für Sie. [Bearbeiten - Dies gilt nicht, es sei denn, Sie kaufen die Vollversion. Es funktioniert genau wie VS2008.

Wenn Sie VS2008 verwenden, müssen Sie veröffentlichen, dann verschleiern Sie die Dateien und unterzeichnen Sie dann die Manifeste mit Magier oder MageUi neu.

Der Deepsea Defuscator funktioniert mit ClickOnce

Der Eziriz .Net Reactor hat eine hervorragende Clickonce -Integration.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top