.Net deployment

Now that I’ve given the talk on .Net Deployment I figured it would be worth putting together some links for people wanting to find out more about what I said.

As a refresher here are the titles of my slides,

  1. Introduction
  2. .Net avoids DLL hell
  3. Get the right DLL’s
  4. Strong Names
  5. 32 Bit & 64 Bit
  6. Vista
  7. Virtualization
  8. Manifests
  9. Code access privileges
  10. Settings
  11. Vulcan
  12. Installer technology
  13. UAC
  14. Installers and x64
  15. Automating things
  16. Debug information
  17. Other dependencies
  18. Testing the installer

Here are some links to some of the things I talked about,

Figuring out dependencies

Strong names

Code Access Security

Virtualization/UAC

64 bit

Installer technology

Settings

VO 2.7 Build system

After far too long without a proper way to build our applications from the command line in VO 2.7 we’ve finally created a program to do that.

There was one hitch we had when building our program; getting the Assembler to compile the modules that needed compiling. We use the VO27NASM.DLL plug in which is essentially just NASM embedded into a dll to compile some assembler code.

There were 2 problems with the assembler code. The first was that after importing the AEF the assembly code wouldn’t compile, even from within VO itself. This turns out to be because they weren’t imported as source code entities. We fixed that by replacing those entities with an identical entity that we created as a source entity. Once we’d done that the application could be built from within the IDE.

The second problem was that compiling from Adam within our app didn’t work. To fix that we just needed to call SubSysInit in the CAVOSSYS . This loads in the plug-ins like the assembler.

This is the import you need for the SubSysInit function. You can call it with all 0’s.

_DLL FUNC SubSysInit (hMenu AS PTR, uiFirstMenuID AS DWORD, wMenuCount AS DWORD) AS LOGIC STRICT:CAVOSSYS._SubSysInit@12

We haven’t tried VO 2.5, 2.6 or2.8 yet but I’m guessing that it should all be essentially the same.

Note: VO refers to CA Visual Objects – http://www.cavo.com/. If you don’t know it don’t worry about it!