Отказ от ответственности: я работаю в PreEmptive Solutions, создателях Dotfuscator.
Проблема с решением Джареда состоит в том, что задача посткомпиляции выполняется слишком поздно в процессе компоновки, поскольку шаги компоновки ClickOnce создают манифесты (включая сигнатуры сборок, запутывание которых изменяется) задолго до того, как посткомпоновка сработает. Вы можете взломать файл MSBuild (ваш файл .csproj / .vbproj), чтобы вызвать задачу обфускации на шаге AfterCompile, и заставить обфускатор сбросить обфусцированные сборки в каталог bin сборок, но это неприятно.
Второй альтернативой является использование инструментов Mage / MageUI для воссоздания манифестов ClickOnce путем публикации приложения, обфусцирования сборок, перезаписи опубликованных сборок обфусцированными версиями и последующего запуска Mage для воссоздания манифестов, как показано здесь . Документация для утилиты Mage здесь .
Третий вариант - если ваш обфускатор - версия Dotfuscator Professional версии 4.6.1010 или выше. Dotfuscator имеет возможность непосредственно читать манифест развертывания ClickOnce в качестве входных данных, запутывать сборки и выводить как обфусцированные сборки, так и полностью обновленные файлы манифеста. См. здесь для начальной точки.