Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations TouchToneTommy on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

SourceSafe, Packaging

Status
Not open for further replies.

AndyDuke

MIS
Jul 27, 2001
80
GB
Firstly, has anyone come across any good resources on how to organise SourceSafe to ease the task of project management. Especially when it comes to handling multiple versions of software components.

Secondly, I still have problems with the Package and Deployment Wizard - I can produce packages OK but if a component changes (DLL or OCX) then I often end up having to re-engineer all my components and the .exe before they can be deployed successfully. Has anyone come across any good resources that explain good working practices for this.

I have just downloaded the Visual Studio Installer from Microsoft but havn't had a chance to use it in anger yet - is this a better option than the P&D wizard??
 
You may hve to be a little more specific about your VSS question. As far as your P&D question, That is NOT a problem with P&D. An exe can hold a reference to a dll as the dll chnges, UNLESS compatibility is broken with a change(add/remove parameters,methods,etc) If the interface of the dll changes, the exe or object that is referencing that particular dll will not carry the new guid or reference to the new dll. I would suggest to you, that during your development phase, you set Project compatibility for you components. This will ease the headache of adding and removing and registering /unregistering dll and ocxs.
 
Andy -

So far as versioning in VSS, it depends on whether your components are COM components, and whether or not different versions are expected to run concurrently.

The best practice we've come up with is to create a VSS folder for each DLL, EXE, OCX, etc inside a product. Name the folder and the DLL with a version number.
[tt]$/MyProduct/MyDLL21[/tt]
for v2.1.x of MyDLL.DLL We track on the Major and Minor version numbers, and use the tertiary version numbers for bug-fixes.

We also name the COM ProgID (VB Project name) with the version. Be sure not to exceed the 39-character name limit in COM!
[tt]MyDLL21.clsMyClass[/tt]

This will allow you to have multiple versions of the DLL installed on a computer (since they have different file-system names and different COM names). When we need to call into another module, we have a .BAS module that contains public constants of all the ProgIDs we're interested in. We then use that constant in our call to CreateObject:
[tt]
In ProgID.bas:
[tab]Public Constant MYDLL21_CLSMYCLASS_PROGID = "MyDLL21.clsMyClass"

In SomeOther.cls:
[tab]Dim objMyClass as object
[tab]Set objMyClass = CreateObject(MYDLL21_CLSMYCLASS_PROGID)
[/tt]

Hope this helps.

Chip H.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top