Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 166
  • Last Modified:

Visual studio installer problem

Hi , iam using VSI to build a setup package for my visual basic programes, iam using ACCESS database in my application , the problem is i found that when i make setup for my prg. in another computer it gives me an activex error(i thing when it connect to the database), iam using DAO, i noticed that the setup programe put files like DAO350.dll and mfc40 in the application program, i tried to change the distination folder in the VSI but it was disabled , Is this the problem and how can i solve it , Thanx a lot
0
ashraf_t
Asked:
ashraf_t
1 Solution
 
aParserCommented:
In this, I'm assuming that the error is 429: ActiveX component can't create object.

The *quick* solution, if you really think it's database-related, is to download the lastest MDAC from Microsoft -- http://msdn.microsoft.com/data/default.aspx and look in the right margin for "MDAC Downloads" -- run it on the other computer, and see if that computer starts working.  Microsoft also provides MDAC redistributables that can be added to setup packages.  I've never done it, but it's possible.

The longer solution is convoluted, but I've used it several times.  First, you'll need to get (free) RegMon from SysInternals: http://www.sysinternals.com/ .

Next, start RegMon and then your application on the non-working PC.  (It's better if you can set up the filters in RegMon to ignore system processes.  You circumstances will differ from mine, so you'll just have to play with the filter, but it's very straight-forward.)

When you get the ActiveX error, switch to RegMon and stop capturing.  Don't clear the error dialog until after you have stopped RegMon.

Look back through RegMon and find where your program is querying the registry for a CLSID and getting a response of NOT FOUND.

Go back to YOUR computer -- where you're NOT getting the error -- and search the registry for that CLSID.  You should find it.  If you don't, it wasn't the right CLSID; go back to the non-working computer and look for the previous missing CLSID.

The details of that CLSID in YOUR registry should tell you which component is missing from the non-working computer.

A third solution is one I'm doing lately.  Every time I create a component, I have a string variable that I fill in with the component's ProgID.  (I never Dim As New.)  In my error trap, I check for error 429 and add that string to my error message.

Sub MySub()
    Dim o1 As New MyObject ' if you Dim variables this way, it won't work
    Dim o2 As MyObject
    Dim strProgID As String
    ...
    On Error GoTo Error_Trap
    ...
    strProgID = "MyObject" ' or I prefer "MyLibrary.MyObject"
    Set o2 = New MyObject
    ...
    Exit Sub
Error_Trap:
    If Err.Number = 429 Then
        MsgBox "Error 429 creating " & strProgID
    End If
    ...
0
 
ashraf_tAuthor Commented:
I will try these solution but why VSI fail in dicovering what the aplplication need , In Package and Deployment wizard that was very easy and can define which files must be taken in the cab file and it's right position ????
0
 
x50FadeCommented:
I never encounter any problems with VSI.....Maybe you need to re-install....
0

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now