Можно ли использовать .NET Reactor с развертыванием ClickOnce? - PullRequest
2 голосов
/ 14 мая 2009

После прочтения этого поста и возникновения той же проблемы (при попытке создания манифестов):

MSB3171: Problem generating manifest. Could not load file or assembly or one of its dependencies. An attempt was made to load a program with an incorrect format.

Я хотел бы знать, если кто-нибудь имел успех, используя .NET Reactor (инструмент шифрования / запутывания) с развертыванием ClickOnce. Я трахал в сети все утро, пытаясь использовать различные методы, и некоторые методы работают с Dotfuscator и Xenocode, поэтому я читаю, но я не могу получить никакой любви от .NET Reactor.

Я действительно думаю, что это сообщение получено, потому что ClickOnce пытается сгенерировать манифест против зашифрованного файла (который даже не может быть открыт в .NET Reflector) ...

Какие у меня есть варианты?

1 Ответ

4 голосов
/ 30 декабря 2009

Мы столкнулись с той же проблемой с ClickOnce и .NET Reactor. Мы отказались от запутывания.

Да, вы правы. ClickOnce необходимо извлечь версию файла, его зависимости, производителя и т. Д. Из файла. ClickOnce пытается загрузить сборку, которая больше не является сборкой после выполнения запутывания. Теперь это обычный двоичный файл .exe.

Есть один ужасный обходной путь, который отлично сработал для меня, но руководство проекта отвергло эту идею.

Создай и запутай все свои двоичные файлы. Упакуйте их в zip (или любой другой) файл на основе события AfterBuild. Пометьте почтовый индекс как «Файл данных» (Настройки проекта -> Опубликовать -> Файлы приложения ... -> Состояние публикации -> Файл данных). После этого создайте единственную не запутанную исполняемую (.exe) сборку. Который просто распаковывает и запускает один из ваших запутанных исполняемых файлов. Настройка ClickOnce опубликует развертывание для этого нового исполняемого файла.

РЕДАКТИРОВАТЬ: пожалуйста, спросите, если я не был достаточно ясен.

...