2010-02-01 32 views
9

Stworzyłem aplikację WPF i zaciemniłem główny .exe za pomocą narzędzia zewnętrznego.Czy można zaciemnić aplikację ClickOnce utworzoną w Visual Studio 2008?

Teraz mam problem z opublikowaniem go jako aplikacji ClickOnce, ponieważ Visual Studio w jakiś sposób ponownie rekompiluje główny plik wykonywalny.

I wyłączona obsługa pola wyboru kompilacji pod kierownika Rozwiązanie → Configuration, ale to nie działa: wykonywalny wciąż odbudowywane kiedy opublikować aplikację do http://localhost/MyApplication

Czy jest możliwe aby wdrożyć mojej aplikacji ClickOnce bez rekompilacji obecny projekt?

Jeśli to nie możliwe, czy istnieje darmowe narzędzie do generowania aplikacji ClickOnce z określonymi żądanymi plikami?

+0

Spójrz na http://stackoverflow.com/questions/3416223/how-to-use-obfuscation-for-clickonce/12036582#12036582 (możliwy duplikat?) – Matmarbon

Odpowiedz

7

Disclaimer: pracować dla poboru Solutions, twórcy Dotfuscator.

Problem z rozwiązaniem Jareda polega na tym, że zadanie budowania postów jest wykonywane zbyt późno w procesie budowania, ponieważ kroki budowania ClickOnce tworzą manifesty (w tym sygnatury zespołów, które zmieniają zaciemnianie) na długo przed rozpoczęciem postu. Możesz zhackować plik MSBuild (twój plik .csproj/.vbproj), aby wywołać zadanie obfuskacji w kroku AfterCompile i zlecić obfuscatorowi zmywanie zaciemnionych złożeń do katalogu bin kompilacji, ale to jest uciążliwe.

Drugą alternatywą jest użycie narzędzia Mage/MageUI odtworzyć ClickOnce przejawia publikując swoją aplikację, kasował zespoły, zastępując opublikowanych zespoły z tych wersji zaciemniony, a następnie uruchomić Mage odtworzyć manifesty jak pokazano here. Dokumentacja dla narzędzia Mag jest here.

Trzecią alternatywą jest, jeśli twoim obfuscatorem jest wersja Dotfuscator Professional w wersji 4.6.1010 lub wyższej. Dotfuscator ma możliwość bezpośredniego odczytywania manifestu wdrażania ClickOnce jako danych wejściowych, zaciemniania złożeń i wyprowadzania zarówno zaciemnionych złożeń, jak i w pełni zaktualizowanych plików manifestu. Aby uzyskać punkt początkowy, patrz here.

1

Nie do końca rozumiem, dlaczego ClickOnce ma to pozorne zachowanie. Jednak powinieneś być w stanie obejść ten problem poprzez wstawienie kroku zaciemniania do systemu kompilacji. Spróbuj zdefiniować zadanie budowania postów, które uruchamia obfuscator przeciwko EXE/DLL. Ponieważ będzie to działało jako część kompilacji, ClickOnce zbierze zaszyfrowane odbudowanie biblioteki DLL.

Będzie również zaoszczędzić kłopotów z systemem ręcznie :)

2

Wystarczy FYI, to jest obsługiwane w Visual Studio 2010.

W międzyczasie trzeba publikować w folderze, zaciemniać zespoły i ponownie podpisać wdrażania przy użyciu Mage lub MageUI. Dzieje się tak dlatego, że ClickOnce zmywa złożenia, a gdy je zaciemniasz, zmienia hasze i nie pasują one do informacji zawartych w manifeście.

RobinDotNet

0

Moja firma pisze kawałek oprogramowania o nazwie ClickOnceMore który jest idealny dla tego scenariusza. ClickOnceMore to narzędzie ClickOnce, które może być użyte do automatyzacji ClickOnce jako części dużego procesu kompilacji.

Korzystając z reguł dołączania plików, można włączyć zaciemnione złożenia do projektu ClickOnceMore, a następnie utworzyć manifesty ClickOnce za pomocą narzędzia wiersza poleceń ClickOnceMore.

Wielu naszych klientów używa ClickOnceMore do tworzenia manifestów ClickOnce z zaciemnionymi złożeniami. Oprogramowanie można znaleźć pod adresem www.clickoncemore.net.

Powiązane problemy