InstallShield и ConfuserEx

Искам да объркам своя изходен код с помощта на ConfuserEx, така че създадох файл на проекта ConfuserEx, който изглежда така:

<project baseDir="." outputDir="." xmlns="http://confuser.codeplex.com">
    <rule pattern="true" inherit="false">
        <protection id="rename" />
        <protection id="ctrl flow" />
        <protection id="ref proxy" />
        <protection id="anti debug" />
        <protection id="anti dump" />
        <protection id="constants" />
        <protection id="resources" />
        <protection id="anti tamper" />
      </rule>
     <module path="MainApplication\bin\Release\MainApplication.exe" />
     <module path="MainApplication\bin\Release\Component.Hardware.dll" />
     <module path="MainApplication\bin\Release\Component.Log.dll" />
     <module path="MainApplication\bin\Release\Component.Service.dll" />
     <module path="MainApplication\bin\Release\Component.Software.dll" />
     <module path="MainApplication\bin\Release\AsynchronousSocket.dll" />
     <module path="MainApplication\bin\Release\Instrumentation.dll" />  
</project>

Тъй като искам да разположа приложението си чрез настройка, създадох InstallShield Setup на моя MainApplication-Project. Избирам първичен изход.

В моето Postbuild-Event във Visual Studio извиквам Confuser.CLI.exe с crproj-файла като параметър. Въпреки това само MainApplication.exe и AsynchronousSocket.dll + Instrumentation.dll са модифицирани с ConfuserEx. Файловете 4 Component.*.dll не са. Трябва да кажа, че всички сглобки са различни проекти. Така че структурата на моето решение за проект изглежда така:

MyProject
    MyProject.MainApplication
    MyProject.Component.Hardware
    MyProject.Component.Software
    MyProject.Component.Log
    MyProject.Component.Service
    MyProject.AsynchronousSocket
    MyProject.Instrumentation
    MyProject.Setup
    MyProject.sln
    MyProject.crpoj

Предполагам, че вземам грешните модули, използвани от InstallShield. Също така се опитах да взема сглобките в MyProject.Component.Service\bin\Release и MyProject.Component.Service\obj\Release, но нито една от тези опции не работи. Не мисля, че използването на MainApplication\obj\Release работи, защото се намира само MainApplication.exe.

Може ли някой да ми каже откъде InstallShield взема първичния изход или ако пропускам нещо друго?


person FRules    schedule 07.05.2015    source източник


Отговори (1)


Възможно решение е множество crproj файлове, по един за всеки двоичен файл, и да посочите специфичния за проекта crproj файл в стъпката след изграждане във ВСЕКИ проект. MainApplication.crproj

<project baseDir="." outputDir="." xmlns="http://confuser.codeplex.com">
    <rule pattern="true" inherit="false">
        <protection id="rename" />
        <protection id="ctrl flow" />
        <protection id="ref proxy" />
        <protection id="anti debug" />
        <protection id="anti dump" />
        <protection id="constants" />
        <protection id="resources" />
        <protection id="anti tamper" />
      </rule>
     <module path="MainApplication\bin\Release\MainApplication.exe" />
</project>

Component.Hardware.dll.crproj

<project baseDir="." outputDir="." xmlns="http://confuser.codeplex.com">
    <rule pattern="true" inherit="false">
        <protection id="rename" />
        <protection id="ctrl flow" />
        <protection id="ref proxy" />
        <protection id="anti debug" />
        <protection id="anti dump" />
        <protection id="constants" />
        <protection id="resources" />
        <protection id="anti tamper" />
      </rule>
     <module path="MainApplication\bin\Release\Component.Hardware.dll" />
</project>
person Sagar Kapadia    schedule 29.04.2019