Круиз-контроль и запутывание, как? - PullRequest
0 голосов
/ 18 сентября 2008

это мой первый вопрос к stackoverflow, так что вот оно ...

Я использую круиз-контроль для своей схемы непрерывной интеграции, я хочу использовать запутывание, чтобы добавить еще один защитный слой в мои сборки. Дело в том, что я не знаю, как это сделать, так как я не мог найти статьи, описывающие это. Предложения, которые включают другие инструменты CI, такие как NAnt, также принимаются.

Коммерческие инструменты также являются опцией, поэтому не стесняйтесь включать их в свой ответ. Приложения, которые я создаю и хочу запутать, в основном написаны на Compact Framework 2.0, Dot Net 2.0-3.5.

В настоящее время круиз-контроль проверяет наличие изменений в хранилище, затем на основе сценария для конкретного решения загружает и создает проект с помощью devenv, после запуска проекта установки он копирует файл установки в другую папку и это более или менее это. Так что мне нужно запутать где-то в этом процессе ..

Ответы [ 2 ]

1 голос
/ 28 сентября 2008

@konstantinos.konstantinidis.myopenid.com: похоже, ваша проблема связана с проектом установки, а не с сервером непрерывной интеграции.

У вас есть проект установки, выбирающий первичные выходы для проекта.

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

Таким образом, вы можете забрать свои запутанные сборки из любой промежуточной директории, в которую их инструмент для запутывания сбрасывает.

0 голосов
/ 18 сентября 2008

Приятно слышать, что кто-то использует CruiseControl.NET. Это хороший инструмент. Вы можете использовать инструмент командной строки для обфускации в качестве RemoteSoft .NET Obfuscator и интегрировать вызов инструмента в сценарий сборки. Посмотрите пример того, как выполнить файл ниже из CruiseControl.NET wiki.

http://www.remotesoft.com/salamander/obfuscator.html

<exec>
    <executable>make</executable>
    <baseDirectory>D:\dev\MyProject</baseDirectory>
    <buildArgs>all</buildArgs>
    <buildTimeoutSeconds>10</buildTimeoutSeconds>
    <successExitCodes>0,1,3,5</successExitCodes>
    <environment>
        <variable>
            <name>MyVar1</name>
            <value>Var1Value</value>
        </variable>
        <variable name="MyVar2" value="Var2Value"/>
        ...
    </environment>
</exec>
...