Действительно ли возможно запутать приложение ClickOnce, созданное в Visual Studio 2008?

Я создал приложение WPF и запутал основной .exe с внешним инструментом.

Теперь я испытываю затруднения для публикации его как приложения ClickOnce, потому что Visual Studio так или иначе перекомпилировала снова основной исполняемый файл.

Я деактивировал флажки сборки согласно Решению → Менеджер конфигурации, но это не работало: исполняемый файл продолжает восстанавливаться, когда я публикую приложение на http://localhost/MyApplication

Действительно ли возможно развернуть мое приложение ClickOnce, не перекомпилировав текущий проект?

Если это не путь, есть ли бесплатный инструмент для генерации приложения ClickOnce с определенными желаемыми файлами?

9
задан Peter Mortensen 15 April 2017 в 13:34
поделиться

4 ответа

Отказ от ответственности: я работаю в PreEmptive Solutions, создателях Dotfuscator.

Проблема с решением Джареда заключается в том, что задача пост-сборки выполняется слишком поздно в процессе сборки, так как шаги сборки ClickOnce создают манифесты (включая подписи сборки, которые изменяют обфускацию) задолго до запуска пост-сборки. Вы можете взломать файл MSBuild (ваш .csproj / .vbproj), чтобы вызвать задачу обфускации на этапе AfterCompile и заставить обфускатор сбрасывать запутанные сборки в каталог bin сборок, но это боль.

Второй альтернативой является использование инструментов Mage / MageUI для воссоздания манифестов ClickOnce путем публикации вашего приложения, обфускации сборок, перезаписи опубликованных сборок обфусцированными версиями и последующего запуска Mage для воссоздания манифестов, как показано здесь . Документация по утилите Mage находится здесь .

Третий вариант - использовать обфускатор Dotfuscator Professional версии 4.6.1010 или выше. Dotfuscator имеет возможность напрямую читать манифест развертывания ClickOnce в качестве входных данных, скрывать сборки и выводить как запутанные сборки, так и полностью обновленные файлы манифеста. См. здесь для отправной точки.

7
ответ дан 4 December 2019 в 20:23
поделиться

Я не совсем понимаю, почему у ClickOnce такое очевидное поведение. Однако вы должны уметь обойти это, вставив шаг обфускации в систему сборки. Попробуйте определить задачу после сборки, которая запустит обфускатор против EXE / DLL. Поскольку это задание будет выполняться как часть сборки, ClickOnce выберет обфускацию DLL пересборки или нет.

Это также избавит вас от необходимости запускать ее вручную :)

.
2
ответ дан 4 December 2019 в 20:23
поделиться

К вашему сведению, это обрабатывается в Visual Studio 2010.

А пока вы должны опубликовать в папке, скрыть сборки и повторно подписать развертывание с помощью Mage или MageUI. Это связано с тем, что ClickOnce хеширует сборки, и когда вы их запутываете, он изменяет хеши, и они больше не соответствуют информации в манифесте.

RobinDotNet

2
ответ дан 4 December 2019 в 20:23
поделиться

Моя компания разрабатывает программу под названием ClickOnceMore, которая идеально подходит для этого сценария. ClickOnceMore - это инструмент ClickOnce, который можно использовать для автоматизации ClickOnce как части большого процесса сборки.

Используя правила включения файлов, вы можете включить свои запутанные сборки в проект ClickOnceMore, а затем построить манифесты ClickOnce с помощью инструмента командной строки ClickOnceMore.

Многие из наших клиентов используют ClickOnceMore для создания манифестов ClickOnce с обфусцированными сборками. Вы можете найти программное обеспечение на www.clickoncemore.net .

0
ответ дан 4 December 2019 в 20:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: