This project has moved and is read-only. For the latest updates, please go here.

Being able to quickly compile CABDevExpress

Aug 19, 2007 at 11:14 AM
Edited Aug 19, 2007 at 10:50 PM
There's a couple of problems in the current project when it comes to quickly getting it to compile after downloading. Some I've fixed and am about to commit, others I'm not sure the best way to do it yet.

  1. the CAB assemblies that are referenced, are hardcoded to look in the default c:\Program Files folder - which doesn't work for me as I have them installed on my E: drive. I'm wondering whether we should reference GAC'd assemblies or just include pre-compiled CAB assemblies with our kit? Perhaps a better way, is to specify a lib in our source tree, which has to be filled with the 3 CAB assemblies to compile.
  2. I've removed licenses.licx from source control, as eveyone needs their own. This is a bit of pain, as it means first-time downloaders can't compile until they open a Control with DevExpress on it - the XtraNavBarWorkspace will do it. Double-click on it and a new license.licx file will be generated. And then you can compile. (There's no getting around this issue)
  3. There's also no getting around that every version of DevExpress requires the Project Tool to update DevExpress controls to the latest version. We'll just have to keep on updating as we go along. I updated to the latest version for my next commit (7.2.2)
Aug 21, 2007 at 9:08 AM
Edited Aug 21, 2007 at 10:49 PM
I modified the BankTeller solution in the way described above. I realise that people are relying on the main project so I held off committing any changes to that.

So the procedure to build the BankTeller sample app, at the moment, will be this:

  1. Create a lib folder under DevExpress.CompositeUI ie DevExpress.CompositeUI\lib
  2. Copy the CAB dll's in there (ie Microsoft.Practices.CompositeUI.dll, Microsoft.Practices.ObjectBuilder.dll, Microsoft.Practices.CompositeUI.WinForms.dll)
  3. For every project that requires a license.licx file, you need to generate one by simply double-clicking on an item in Solution Explorer that uses a DevExpress control (you've always got this problem with DevExpress controls - we loath this problem in our IT team)

And that's it. From there, the BankTeller app will build - make sure the BankShell project is set as the startup project as well.

I also removed the references to CAB projects in there.
Aug 23, 2007 at 1:34 PM
Edited Aug 23, 2007 at 1:40 PM
Sorry to answer myself again.
I was just over at The Smart Client Software Factory Contrib and I downloaded their first release to see how they do it.
And I discoverd that they include CAB dll (binaries) in the download. So, I'm now fairly convinced that this is the best way to do it.
Aug 25, 2007 at 4:59 PM
Edited Aug 25, 2007 at 5:07 PM
OK, I've given this some thought and I'm going to make a commit of the project - the way I think it should be.

  • A 'lib' folder in the root with 3 pre-compiled CAB dlls - to which all the projects reference
  • The project name changed to reflect the actual name of the project - CABDevExpress.ExtensionKit
  • The namespace, likewise, changed. It really should not be 'DevExpress' or 'DevExpress.CompositUI' when this is what DevExpress themselves use (and causes problems with the Project Converter tool) - so the namespace becomes CABDevExpress

Apologies if this breaks any builds, but I'm one of those people who much prefer to get things right and move on, than cling to something that's wrong just to avoid breaking things.

The DevExpress Project Converter tool problem is actually stopping me from using this kit - as it is. I have my own copy of the project at the moment, with my own modificiations. So, unless I do this the way I think it should be done (above), it's actually more difficult for me to contribute to the project.

The namespace will require minor adjustments to the source code that people have written to utilize the Extension Kit (probably just have to change a few using statements). A minor pain, but I don't see this is a major hassle. We've got to be able to do things like this occasionally.
Aug 26, 2007 at 3:37 AM
I've got one more commit to make before I reckon it's ready for release.