Сделать установщик с замененным выводом по событию после сборки - PullRequest
0 голосов
/ 30 октября 2018

Я работаю над решением 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. Любая помощь будет благодарна.

Спасибо за чтение.

...