KernelCAD Documentation

DInsight Home
Skip Navigation Links.
Start page
Quick Start
Installation
Overview of the software
What is new
Collapse KernelCAD ModelsKernelCAD Models
Collapse KernelCAD ComponentsKernelCAD Components
KernelCAD Control
KernelCAD .NET Control
Methods and Properties
Menu
Model Explorer
Birds Eye View
Programming
Direct User Access
Direct Operations
Interface Queries
Printing Support
Data Types
Modes of KernelCAD Control
DIObjectGenerator class
Properties
FlatObjectArray Poperty
Context
64 bit development
Dual Mode
Initialisation Context
Overlay Editor
Memory Management
Input validation
Collapse Advanced functionalityAdvanced functionality
Collapse InterfacesInterfaces
Alphabetical list
I3DGrid
I3DBugger
I3Dpt
IAxiBase
IAxis
IBoolSection
IBoolSectionEx
IBoundary
IColor
IConstraint
IData
IDiffSurface_KC
IDIFont
IDraw
IDrawUtil
IDraw2
IElem
IElement
IKCLine
ILightSource
ILocation
ILocationEx
IMaterial
IMetrics
IMetrics2
IModel
IModel2
IModelEx
IPatch
IKCPathCollisionDetector
IProfiles
IPropertyArray
IPropertyArray2
IStdShape
IStrip
ISurface
IText
ITexture
ITransform
IUnknown
Collapse Open Cascade TechnologyOpen Cascade Technology
Collapse DataData
Collapse MovementMovement
Collapse FramesFrames
Collapse Oriented ObjectsOriented Objects
Collapse SectionsSections
Collapse GeneralGeneral
Collapse Topological InterfacesTopological Interfaces
Collapse Viewing InterfacesViewing Interfaces
Collapse Lines And CurvesLines And Curves
Collapse Symmetry InterfacesSymmetry Interfaces
Collapse Clipping plane interfacesClipping plane interfaces
Collapse AlgorithmsAlgorithms
Collapse 2D Geometry2D Geometry
Collapse Programming Samples and TutorialsProgramming Samples and Tutorials
Collapse OverviewOverview
Collapse DeploymentDeployment
Collapse .NET Samples.NET Samples
Collapse C++ SamplesC++ Samples
Collapse Visual Basic SamplesVisual Basic Samples
Collapse Delphi SamplesDelphi Samples
Collapse 3D Debugger3D Debugger
Collapse DeploymentDeployment
Licensing
Model Viewer
Open C++ Source
Technical Support
Skip Navigation LinksHome Page > Programming Samples and Tutorials > Deployment > WixDeploy
WixDeploy Tutorial

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 KernelCAD-based application using Wix Tool set. This tutorial can also be used as guidence 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.8 of WiX tollset 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 KernelCAD x64 5_2 is installed on the computer at its default location C:\Projects\KernelCAD_5_2. 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\KernelCAD_5_2\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.8\bin\ by default)

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

Building the application

- Copy C:/Projects/KernelCAD_5_2/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 platfom 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 platrom 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\KernelCAD_5_2\Models\ArcPatch.glm to Patch\bin\x64\Release folder

- Open Patch form in form designer and change ModelPath property of KernelCAD to <EXEPATH>ArcPatch.glm. Ignore the "KernelCAD .NET Control x64 design mode..." message on the control. This is the correct behavious in x64 configuration. Execute KernelCAD'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\KernelCAD_5_2\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\KernelCAD_5_2\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 KernelCAD merge module

- Download KcRedist_x64_5_2.zip from http://www.dynoinsight.com/ProDown.htm (64 bit KernelCAD Runtime Merge Modules) and extract it into C:\Projects\KernelCAD_5_2\Samples\Deployment\KcRedist_x64_5_2 folder, so there is C:\Projects\KernelCAD_5_2\Samples\Deployment\KcRedist_x64_5_2\KcRedistMsm_x64_5_2.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 KernelCAD

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

- Run Patch.exe. Select Advanced > Model Explorer in context menu. Select the newly addded 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 KernelCAD 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 startup project

- In Project properties > Debug select "Start external program" and browse to C:\Program Files\YouCorp\WixDeploy\Patch.exe (or any other KernelCAD-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, particularily 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