Using Multiple Versions of the dlls for the app

A

ack

Hii all,

I have a this internal use portal i am working on deployed on a server.
My app uses some dlls that are instantiated from the asp pages using
server.createobject
Now I want to deploy the new versions of the web app on the same machine for
testing thus making production and staging machines same, running the actual
site as well as test site
I have modified the dlls. So I want the old site to use old dll and new site
to use newer version

IIS 5,, W2K


How can I?

Thank U in advance

ak
 
R

Ray at

You could give them different class names. You can't register the same name
twice, afaik, so they'd have to have different names. The other option is
to put the new dll on your test server. Test server? Come on, we all have
piles of test servers all over the place. ;]

Ray at home
 
A

ack

Is there no way by which i can specify which version of the dll to load?

As far as i believe, when a dll registered it creates the entries in the
registry storing all the information like GUIDs, Threading Models etc,
including path.

I am not sure if i understand the COM model exactly, but still these are my
thoughts

Shld thr be any mechanism by which one wld be able to load the appropriate
info.



Ray at said:
You could give them different class names. You can't register the same name
twice, afaik, so they'd have to have different names. The other option is
to put the new dll on your test server. Test server? Come on, we all have
piles of test servers all over the place. ;]

Ray at home

ack said:
Hii all,

I have a this internal use portal i am working on deployed on a server.
My app uses some dlls that are instantiated from the asp pages using
server.createobject
Now I want to deploy the new versions of the web app on the same machine for
testing thus making production and staging machines same, running the actual
site as well as test site
I have modified the dlls. So I want the old site to use old dll and new site
to use newer version

IIS 5,, W2K


How can I?

Thank U in advance

ak
 
R

Ray at

I don't believe so. There isn't any third argument to accept version info
or anything, so it'd have to be in the class string. But I don't know about
all this for sure. (In other words, if someone else is following thread and
knows for sure, feel free to chime in.)

Creates and returns a reference to an Automation object.
CreateObject(servername.typename [, location])Arguments
servername
Required. The name of the application providing the object.
typename
Required. The type or class of the object to create.
location
Optional. The name of the network server where the object is to be
created.

Ray at work
 
M

Mark Schupp

You cannot do this with VB components but you should be able to do it with
C++ components. You'll have to set up different versions in the registry.
For an example of how this works have a look at the MSXML2.XMLHTTP object in
the registry. You will probably see at least 2 versions.

CreateObject("msxml2.xmlhttp") will give you the "standard" version.
probably 3.0
CreateObject("msxml2.xmlhttp.2.6") will give you the 2.6 version
CreateObject("msxml2.xmlhttp.3.0") will give you the 3.0 version
CreateObject("msxml2.xmlhttp.4.0") will give you the 4.0 version

Put the desired ProgIDs in an include file so you can change them easily.

If the objects are in VB components you will need to change the project and
DLL name and recompile the dlls. Then put the new ProgID in an include file
as above. For example:

CreateObject("somedll1.someobject") version 1 application
CreateObject("somedll2.someobject") version 2 application

--
Mark Schupp
Head of Development
Integrity eLearning
www.ielearning.com


ack said:
Is there no way by which i can specify which version of the dll to load?

As far as i believe, when a dll registered it creates the entries in the
registry storing all the information like GUIDs, Threading Models etc,
including path.

I am not sure if i understand the COM model exactly, but still these are my
thoughts

Shld thr be any mechanism by which one wld be able to load the appropriate
info.



Ray at said:
You could give them different class names. You can't register the same name
twice, afaik, so they'd have to have different names. The other option is
to put the new dll on your test server. Test server? Come on, we all have
piles of test servers all over the place. ;]

Ray at home

ack said:
Hii all,

I have a this internal use portal i am working on deployed on a server.
My app uses some dlls that are instantiated from the asp pages using
server.createobject
Now I want to deploy the new versions of the web app on the same
machine
for
testing thus making production and staging machines same, running the actual
site as well as test site
I have modified the dlls. So I want the old site to use old dll and
new
site
to use newer version

IIS 5,, W2K


How can I?

Thank U in advance

ak
 
A

ack

I have never worked with VC++ and dunno kno exactly wut to be done, but
certainly will try my hands about this some time.

I have done the same thing as Mark had said, but I wanted to avoid that.
Neways, this seems the only way out.
I have compiled the project with another name and have created a applicatin
level variable application("DLLNAME").
By using it in Server.CreateObject( Application("DLLNAME" & ".ClassName"), I
have achieved it. So while deploying other versions I will need to change
the application level variable in global.asa
:( Ofcourse I am not happy with this and will try my hands on VC, sometime

Sorry for being late, wasnot working this weekend.

neways, thank you Mark n Ray

Ak



Mark Schupp said:
You cannot do this with VB components but you should be able to do it with
C++ components. You'll have to set up different versions in the registry.
For an example of how this works have a look at the MSXML2.XMLHTTP object in
the registry. You will probably see at least 2 versions.

CreateObject("msxml2.xmlhttp") will give you the "standard" version.
probably 3.0
CreateObject("msxml2.xmlhttp.2.6") will give you the 2.6 version
CreateObject("msxml2.xmlhttp.3.0") will give you the 3.0 version
CreateObject("msxml2.xmlhttp.4.0") will give you the 4.0 version

Put the desired ProgIDs in an include file so you can change them easily.

If the objects are in VB components you will need to change the project and
DLL name and recompile the dlls. Then put the new ProgID in an include file
as above. For example:

CreateObject("somedll1.someobject") version 1 application
CreateObject("somedll2.someobject") version 2 application

--
Mark Schupp
Head of Development
Integrity eLearning
www.ielearning.com


ack said:
Is there no way by which i can specify which version of the dll to load?

As far as i believe, when a dll registered it creates the entries in the
registry storing all the information like GUIDs, Threading Models etc,
including path.

I am not sure if i understand the COM model exactly, but still these are my
thoughts

Shld thr be any mechanism by which one wld be able to load the appropriate
info.



same
name
option
is
to put the new dll on your test server. Test server? Come on, we all have
piles of test servers all over the place. ;]

Ray at home

Hii all,

I have a this internal use portal i am working on deployed on a server.
My app uses some dlls that are instantiated from the asp pages using
server.createobject
Now I want to deploy the new versions of the web app on the same machine
for
testing thus making production and staging machines same, running the
actual
site as well as test site
I have modified the dlls. So I want the old site to use old dll and new
site
to use newer version

IIS 5,, W2K


How can I?

Thank U in advance

ak
 

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

Members online

Forum statistics

Threads
473,733
Messages
2,569,439
Members
44,829
Latest member
PIXThurman

Latest Threads

Top