Я работаю над решением WPF с 2 проектами ProjA и ProjB.
- ProjA - это проект WPF, который генерирует исполняемый файл WPF.
- ProjB - это проект установки ProjA.
Я использую Obfuscar Nuget Package для шифрования моего исполняемого файла.
Для этого настройте события после сборки в ProjA, как показано ниже.
"$(Obfuscar)" obfuscar.xml
copy /Y "$(TargetDir)\Obfuscator_Output\*" "$(TargetDir)"
del /Q "$(TargetDir)\Obfuscator_Output\*.*"
rd "$(TargetDir)\Obfuscator_Output"
del "$(TargetDir)\Mapping.txt"
del "$(TargetDir)\obfuscar.xml"
echo post build events are done!
Позвольте мне объяснить, Obfuscar создает зашифрованный исполняемый файл внутри \ Obfuscator_Output. После этого скопируйте зашифрованный исполняемый файл и замените на него исходный исполняемый файл. Затем удалите \ Obfuscator_Output, его вещи и файл журнала Obfuscator (Mapping.txt).
Я проверил результаты, и это сработало. После сборки ProjA папка Output содержит зашифрованную версию исполняемого файла.
Но после того, как я настроил ProjB для установки Установщика ProjA, Установщик не устанавливает зашифрованный исполняемый файл. Я думаю, что установщик берет оригинальный исполняемый файл (не зашифрованный Obfuscar).
Выходы из ProjA, ContentsFiles, Скопированные файлы из локальных добавляются в ProjB. Я думал, что Outputs из ProjA будет означать зашифрованный исполняемый файл (потому что он имеет то же имя с оригинальным).
Как сделать так, чтобы установщик установил зашифрованный исполняемый файл? Таким образом, я заменяю исходный вывод через событие после сборки, и кажется, что нет никакого доступа к сгенерированным файлам после запуска события после сборки. Сначала я пытаюсь решить проблему с помощью события после сборки ProjB, но это кажется невозможным, потому что ProjB не имеет ссылки на Obfuscar. Любая помощь будет благодарна.
Спасибо за чтение.