.net installers

C

C.E.O. Gargantua

I wrote a little c# app to send SQL queries to a iSeries 830 and return
the results in a data grid.

Now I want to create a deployment program.

It's using the iSeries DB2 Provider for .NET which is part of a CD
install. The key DLL is:

ibm.data.db2.iseries.dll

I created a Setup program, and since ibm.data.db2.iseries.dll is part of
the references, the Setup project recognized that.

On compile, Setup created a directory containing:

Setup.exe
..msi
ibm.data.db2.iseries.dll

After installing on a /virgin/ machine, when running the application, an
error was thrown,

"System.TypeInitializationException: The type initializer for
"IBM.Data.DB2.iSeries.iDB2Constants" threw an exception. ---> An
unexpected exception occurred. Type: System.DllNotFoundException,
Message: Unable to load DLL (cwbdc.dll)."

I tried to manually register the DLL but regsvr32 reported:

"IBM.Data.DB2.iSeries.dll was loaded, but the DLLRegisterServer entry
point was not found."

Questions:

It looks like not all the needed components to install were put into the
setup program. How can I take care of this?

Does a Setup Program automatically find all the needed components and
their DLL dependencies?

Do I need an MSM file instead?



--
Texeme
http://texeme.com

incognito () Updated Almost Daily
http://kentpsychedelic.blogspot.com
 
D

david

Click dlls under primary output, see the property - register, I think you
need control how are they registered.
 
C

C.E.O. Gargantua

Thanks, good tip.

I found another route...I think there's a lot more *stuff* needed to be
able to use the IBM.Data.DB2.iSeries.dll

Luckily, I decided to inspect the iSeries Access CD and there is a
utility there that lets you build a deployment/setup build for just the
components needed. To access it click on:


-> Additional information and Tools
-> Create tailored installation image for iSeries Access for Windows

I deselected everything except the DB Provider for .NET there was still
a truckload of "Required" components that couldn't be
deselected....still, it's a whole lot smaller ( 16 MB ) than a normal
install AND I can put it in a folder, copy it to a server and install
via terminal server on the target.
 
D

Darin McBride

C.E.O. Gargantua wrote:

[I asked this of someone outside the newsgroup and am embedding his
answers.]
I wrote a little c# app to send SQL queries to a iSeries 830 and return
the results in a data grid.

Now I want to create a deployment program.

It's using the iSeries DB2 Provider for .NET which is part of a CD
install. The key DLL is:

ibm.data.db2.iseries.dll

I created a Setup program, and since ibm.data.db2.iseries.dll is part of
the references, the Setup project recognized that.

On compile, Setup created a directory containing:

Setup.exe
.msi
ibm.data.db2.iseries.dll

After installing on a /virgin/ machine, when running the application, an
error was thrown,

"System.TypeInitializationException: The type initializer for
"IBM.Data.DB2.iSeries.iDB2Constants" threw an exception. ---> An
unexpected exception occurred. Type: System.DllNotFoundException,
Message: Unable to load DLL (cwbdc.dll)."

This seems to be the problem. cwbdc.dll is missing and it is needed by
ibm.data.db2.iseries.dll. The install image must contain all needed
dll's.
I tried to manually register the DLL but regsvr32 reported:

"IBM.Data.DB2.iSeries.dll was loaded, but the DLLRegisterServer entry
point was not found."

Questions:

It looks like not all the needed components to install were put into the
setup program. How can I take care of this?

You need to indetitfy the needed dll/s on a test system first and then
including all the required files in the install image. You can find
which dll/s are requiured by another dll using the depends.exe tool.
Make sure that the app you are creating an install for is complete and
runnable first.
Does a Setup Program automatically find all the needed components and
their DLL dependencies?

Not at all.
Do I need an MSM file instead?

No
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top