With the following, there is no need to deploy any QDV component in your application package. This way updating of QDV7 requires no further action in the calling application.
Find a complete VB .NET example of this in C:\<QDV Installation folder>\SDK\Sample VB.NET
Procedure:
1.Under Visual Studio, from the sample project, reference QDV assemblies in their installation folder
References: |
|
|
|
|
Reference Name |
Type |
Version |
Copy Local * |
Path |
InterfaceQDV |
.NET |
1.1.1.1 |
False |
C:\Program Files\QDV 7\InterfaceQDV.dll |
Qdv.CommonApi |
.NET |
1.0.0.0 |
False |
C:\Program Files\QDV 7\Qdv.CommonApi.dll |
* Set 'Copy Local' to False so that they are not copied to your output folder.
The project should run as soon as it is compiled in ANY CPU mode.
2.Open C:\<QDV7 Installation folder>\SDK\Sample VB .NET\StartingModule.vb
3.Tell your application where QDV7 is installed:
'---FOLLOWING LINE IS USED TO REFER TO QDV ASSEMBLIES IN ANOTHER FOLDER---
'Private PathWhereQDVIsInstalled As String = QuickDevis.Common.CommonUtility.ApplicationStartupPath & "\"
'When QDV is not in the folder of the current application, you can set this path to its installation folder like this:
Private PathWhereQDVIsInstalled As String = "C:\Program Files\QDV 7"
4.Tell your application to load all missing assemblies from that folder:
'---FOLLOWING LINE IS USED TO REFER TO QDV ASSEMBLIES IN ANOTHER FOLDER---
'Following line is used to trigger an event when an assembly is missing. This let's you refer to InterfaceQDV.dll in a folder different than the one of your application
AddHandler AppDomain.CurrentDomain.AssemblyResolve, AddressOf MyResolveEventHandler
5.As soon as the Interface is initialized, provide the folder where QDV7 is installed using following function:
'Must take a reference to the component QDV_Interface
MyQDVInterface = New InterfaceQDV.InterfaceQDV.QDVInterface
'This is to tell the application that QDV is installed in another folder
MyQDVInterface.SetStartupPathWhereQDVIsNotInApplicationFolder(_PathWhereQDVIsInstalled)