Groups | Blog | Home
all groups > inetserver asp components > october 2003 >

inetserver asp components : Using Multiple Versions of the dlls for the app


Ray at <%=sLocation%
10/17/2003 12:38:22 AM
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

[quoted text, click to view]

Mark Schupp
10/17/2003 8:37:08 AM
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


[quoted text, click to view]

Ray at <%=sLocation%
10/17/2003 9:20:10 AM
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

[quoted text, click to view]

ack
10/17/2003 10:03:07 AM
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

ack
10/17/2003 10:39:36 AM
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.



[quoted text, click to view]

ack
10/20/2003 3:11:08 PM

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



[quoted text, click to view]

AddThis Social Bookmark Button