views:

381

answers:

2

Hi there, this is my first question to stackoverflow so here it goes...

I use cruise control for my continuous integration scheme, i want to use obfuscation in order to add another protection layer to my assemblies. The thing is that i don't know how to go about it since i couldn't find articles describing about this. Suggestions that include other CI tools such as NAnt are also accepted.

Commercial tools are also an option so don't hesitate to include them in your answer. The applications that i am building and want to obfuscate are mostly written in Compact Framework 2.0, Dot Net 2.0-3.5.

At the moment cruise control checks for changes in the repository, then based on the script for the specific solution downloads and builds the project by using devenv, after the setup project has been run it copies the setup file into a different folder and thats more or less it. So i need obfuscate somewhere in this process..

Thanks in advance for any input.

A: 

Nice to hear someone is using CruiseControl.NET. That is a nice tool. You can use a command line tool for obfuscation as RemoteSoft .NET Obfuscator and integrate a call to the tool in the build script. See example on how to execute a file below from 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>
smink
+1  A: 

@konstantinos.konstantinidis.myopenid.com: your problem seems to be with the setup project not the continuous integration server.

You have the setup project picking up the primary outputs for the project.

Change it to use file references to the outputs. It's a little more configuration in the setup project but I think you can still achieve all the same functionality.

That way you can pick up your obfuscated assemblies from whatever staging directory your obfuscation tool is dumping them into.

Hamish Smith
Actually this is pretty much what we didWe used smartassembly to take the assemblies from the build folder of VS, then created an obfuscated assembly in a stage folder, and added in the setup project this file instead of the primary output of the initial project :)Works like a charm! TY - Kostas.
Konstantinos