DG Kernel Documentation


Skip Navigation Links.
Start page
Quick Start
Search Page
Installation
Overview of the software
What is new
Licensing
Collapse ModelsModels
Collapse DG Kernel ComponentsDG Kernel Components
Collapse API ReferenceAPI Reference
Interface List
Vector Space
Collapse General GeometryGeneral Geometry
Collapse ModelModel
Collapse ViewView
Collapse General ComputingGeneral Computing
Collapse Samples and TutorialsSamples and Tutorials
Collapse GraphicsGraphics
Collapse Math ObjectsMath Objects
Collapse DeprecatedDeprecated
Redistribution
Model Viewer
Open Source
Support
Skip Navigation Links Search Documentation


WixDeploy Tutorial

This advanced tutorial demonstrates: Customisation, recompilation and debugging of Model Explorer; Building Model Explorer for target .NET frameworks different form the defaullt v4.0; Deployment of DG Kernel-based application using Wix Tool set. This tutorial can also be used as guidance for the tasks using software other than Wix

The tutorial proceeds in wide steps, many details of which are left for user to investigate using the provided source code. The source code is included in the Samples\Deployment\WixDeployComplete solution

The installer will install a copy of the executable from C# Patch sample. It will also install a customised version of Model explorer targeting .NET4.5 (3.5 in Visual Studio 2008)

The tutorial is based on version 3.11 of WiX toolset http://wixtoolset.org/about/ - free and open software developed and maintained by Microsoft engineers. We recommend installing this useful tool. If you do not wish to install Wix this tutorial is still useful as there is source for the installer which has clear XML-based structure and can be used as a reference for creating installers with another tools

It is assumed that DG Kernel x64 6.0 is installed on the computer at its default location C:\Projects\DgKernel_6_0. With simple adjustments the same procedure applies to 32 bit - based installer

Creating Wix installer

-  Download and install Wix: http://wixtoolset.org/releases/

-  Open Visual Studio 2008 or later. Select File > New Project > Templates > Windows Installer XML > Setup Project. Enter WixDeploy for the name of the project and C:\Projects\DgKernel_6_0\Samples\Deployment\ for the Location. Turn on "Create directory for solution" check box. Press OK.

- The above step will create a basic template for a Wix Installer, which is contained in the Product.wxs xml source file. We skip details of the Wix code. Copy EULA.rtf, Product.wxs and SetupBanner.jpg from Samples\Deployment\WixDeployComplete\WixDeploy\ folder to the WixDeploy\WixDeploy folder created in the previous step

- Right-click the References node under the WixDeploy in the project solution and add reference to WixNetFxExtension.dll and WixUIExtension.dll located in the Wix installation directory (C:\Program Files (x86)\WiX Toolset v3.11\bin\ by default)

- Copy DgKernel_6_0\Samples\Deployment\WixDeployComplete\Gen.ico to the solution folder DgKernel_6_0\Samples\Deployment\WixDeploy\

Building the application

- Copy C:/Projects/DgKernel_6_0/Samples/NET/C#/Patch folder to the top WixDeploy folder of the solution. This sample will be customised slightly to simulate the .NET application to be deployed

- Add the copied Patch project to the WixDeploy solution

- In Configuration Manager of Visual Studio select x64 as the Active Solution Platform. If x64 platform is not available, select <New>, x64 and make sure "Create project platforms" is on.

- In the project list of Configuration Manager make sure platforms for both projects are x64. Add the platform for a project using the <New> option if required. Make sure that Build check boxes are on for both projects

- Make Release the active configuration for the solution

- In Patch project properties select .NET 4.5 (3.5 in Visual Studio 2008) as the target framework

- Copy C:\Projects\DgKernel_6_0\Models\ArcPatch.mdg to Patch\bin\x64\Release folder

- Open Patch form in form designer and change ModelPath property of DG Kernel to <EXEPATH>ArcPatch.mdg. Ignore the "DG Kernel .NET Control x64 design mode..." message on the control. This is the correct behaviour in x64 configuration. Execute DG Kernel's "Update Component Registration" command from Start menu if you get an exception in designer

- Build Patch project. Make sure it runs OK.

Customising Model Explorer

In this step we will add new "Save selected object as" menu option to the Model Explorer menu

- Copy C:\Projects\DgKernel_6_0\KC\ folder to the WixDeploy folder of the solution (top)

- Add WixDeploy\KC\Apps\Edit\EditorsNet\EditDev.csproj to the WixDeploy solution

- Make sure its x64 Release configuration is active and built in Configuration Manager

- Change the target framework to .NET 4.5 (3.5 in Visual Studio 2008)

- Make sure that the Assembly name for EditDev is ModelExplExt

- Make sure the output path is ..\..\..\..\Bin\x64\

- Open Explorer.cs in Visual Studio form designer. In the Action menu add new item "Save Object As". Add Click event handler named OnSaveSelectedAs for the menu item

- Copy code from OnSaveSelectedAs() method of C:\Projects\DgKernel_6_0\Samples\Deployment\WixDeployComplete\KC\Apps\Edit\EditorsNet\Explorer.cs into the event handler

- Build the EditDev project. Make sure WixDeploy\Bin\x64\ModelExplExt.dll appears

Adding DG Kernel merge module

- Download DgRedist_x64_6_0.zip from download page (64 bit DG Kernel Runtime Merge Modules) and extract it into C:\Projects\DgKernel_6_0\Samples\Deployment\DgRedist_x64_6_0 folder, so there is C:\Projects\DgKernel_6_0\Samples\Deployment\DgRedist_x64_6_0\DgRedist_x64_6_0.msm.
The WixDeploy\WixDeploy\Product.wxs has a reference to the files

Building and Testing solution

- Use Configuration manager to make sure Release x64 is the active configuration and Release x64 is the current configuration for all projects

- Build the solution. This should produce WixDeploy\WixDeploy\bin\x64\Release\WixDeploy.msi file. Test its installation. It is recommended to use a different computer or uninstalling temporary DG Kernel.

- The application will be installed into C:\Program Files\YouCorp\WixDeploy folder. Notice the DG Kernel dlls and the customised ModelExplExt.dll in the Bin folder.

- Run Patch.exe. Select Advanced > Model Explorer in context menu. Select the newly added Action > "Save Object As" item. Save it to a temporary location. Use Model Viewer or 3D Debugger to check the file loads OK

Debugging Model Explorer

The steps below demostrate debugging the Model Explorer

When Model Explorer is launched from context menu, the DG Kernel component looks for the plugin next to its own KerCADne.ocx. So, the recommended way to debug is to compile a new debug version of the dll with target located in the C:\Program Files\YouCorp\WixDeploy\Bin folder

- Change the active configuration of WixDeploy solution to Debug x64. Open configuration manager and clear the Build check boxes for WixDeploy project. Make sure the other two have x64 platform selected

- Open project properties for EditDev and change Output Path on the Build tab to Program Files\YouCorp\WixDeploy\Bin\. Use the browse button to make sure the correct relative path is entered.

- Build EditDev. Restart Visual Studio with administrative privileges if you get an error about copying files to the target folder. Check that modified date on ModelExplExt.dll has changed

- Set EditDev as the start-up project.

- In Project properties > Debug select "Start external program" and browse to C:\Program Files\YouCorp\WixDeploy\Patch.exe (or any other DG Kernel-based application)

- Open EditDev\Explorer.cs and put a break point on the first line in the OnSaveSelectedAs handler added in the "Customising Model Explorer" section above. It will remain disabled until Model Explorer is opened

- Start debugging in Visual Studio. In the application open the Model Explorer and select the new Action > "Save Object As". The execution should stop at the break point you have added. You should be able to step through the code and see values of all variables. If this does not happen, particularly if the break point remains disabled, most likely the wrong version of the plugin has been loaded. Check previous steps. Use Process Explorer to check path of the actually loaded dll

See Also: Redistribution