wyBuild isnt creating a small patch

Hi Guys,

I have a bit of a problem which I'm not sure is me or wyBuild.

I have a project that has one exe in the program folder with a few dll's, I also a folder in there with a bunch of xml files.

95% of the time the support files never change, its just the exe so to save time I make a copy of a folder from the previous build (I store each build in its own folder) rename this folder with the new build number and then replace only the exe with the new one. I then drag the contents of the new folder into wyBuild and build the project

This results in a build the full size of the project everytime. On the odd time I do get a small patch but I expect to get a small patch everytime

After I have a number of build folders I tend to delete a few old ones and remove then from wyBuild, not sure this would have an effect?

Any ideas why I'm not getting a smal patch. I use the above procedure on a few other projects, some do create a small patch and I think another doesnt

Thanks

Hey Steve,

wyBuild creates patches by comparing old versions with new versions of your software. Any new files are added as full files, any files that were in old versions but are no longer in the new version are deleted, and any files that are the same are compared byte-by-byte and a delta patch is created. If you create your versions like we state in the step-by-step walkthrough then everything should work fine.

I have a few questions:

Are you creating separate versions in wyBuild? (Or, the converse of that question: you're not reusing the same version, renaming it and adding the new files?)

Is the problem really that the "catch-all" file is being downloaded, because this is a separate issue altogether? (The catch all file is an update which contains full files not patches).

Are you using any special "randomization" obfuscation on your executables? Because this will effect the patching.

Hi Sam,

Yes I am creating a new version in wyBuild for each new release

I think you have have picked up on the problem, I am obfuscating my assemblies, not quite sure what you mean by random though?

If the above is the problem is there anyway round this?

I am obfuscating my assemblies, not quite sure what you mean by random though?

Well some obfuscators have options to "encrypt" the blocks of code or have a special "loader" that runs special interpreted code. Don't use these options because then patching is near impossible. Let me explain this in simple terms.

If you don't use "randomization" obfuscation then version 1.0 of your app might look like this on disk:

ABCDEFG

Version 1.1 might look like this:

ABCE7FG8

That is, the executables are almost entirely identical (some parts are added, some parts are removed). So when wyBuild creates a patch between these versions it will just include the changes.

Now, if you were to do the same thing between encrypted obfuscated executables, then version 1.0 might look like:

][;'.4dljkb/.,5

Version 1.1 might look like

~`()*^$vmhs8rwq

That is, they'd look completely different even though you made only minor changes to the code. That's the problem with these obfuscators.

If the above is the problem is there anyway round this?

The easiest solution is to stop obfuscating your assemblies. It adds no real protection. But if you don't want to go down this path you can tone down the obfuscation. Use a simple obfuscator that doesn't do encryption. Here's a good free one: Eazfuscator.NET.

Thanks Sam

That explains why some projects create patchs and others do not. I'll play around with the obfuscation settings see if I can find a balance to get smaller patchs

Thanks for your help