Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Patch files and updated Dlls


3 replies to this topic

cmellon

cmellon
  • Members
  • 3 posts

Posted 26 January 2004 - 11:49

Hi All,

I am fairly new to install shield, but have managed to create a good setup package that is working fine and as expected.

I am now in the process of creating a patch package but am having problems with updated dll files. The dll files have been developed in using visual basic 6. When i create my patch packages i get the following errors regarding the new dll file: -

ISDEV : warning Val0009 A registry entry has been removed from the component 'SAL_cstUIDTLIV'. This key must be added to the RemoveRegistry table, otherwise it will be orphaned by an upgrade. '0|clsid\{febcf4bb-eb05-4f15-81d9-a0bb76d85c28}\version|'. c:\mysetups\configure sales tracker\main configuration\release 1\v1_1\configure sales tracker.msi

Val0010 The data in component 'SAL_cstUIDTLIV' differs from the previous setup. However, this component will not reinstall in an upgrade scenario. Therefore, the changes will not be applied to the target system during the upgrade. Table: 'Class' Record: '{8384A118-0590-49DD-9444-665F6959B3B0};InprocServer32;SAL_cstUIDTLIV;cstUIDTLiv.cActivity;cstUIDTLiv.cActivity;;;;;;;MainApp;' c:\mysetups\configure sales tracker\main configuration\release 1\v1_1\configure sales tracker.msi

Am i going about this the wrong way. All i want the patch to do is update the main exe file and one dll.

Has anyone got any suggestions or ideas on how i can resolve this.

Thanks in advance.

Craig

cmellon

cmellon
  • Members
  • 3 posts

Posted 26 January 2004 - 12:56

I have just found the document on the Install Shield website that describes the Val0010 error.

It says in the document that this error will be raised when the key file has not changes but the data has. But i have double check my install package and the file has changed. The file date has changed and also the version number.

One thing i have noticed is that the version number is showing as 1.0.0.2, when i look at the proprties in VB6 however it shows at 1.1.2 Could it be this causing the problem as i remember reading something in the help documents about it only recognising the first 3 version numbers. (What i don;t understand though is why VB6 is setting the version as 1.1.02 instead of 1.1.2)

Any body have any suggestions.

Thanks

Craig

cmellon

cmellon
  • Members
  • 3 posts

Posted 26 January 2004 - 14:29

Hi all,

I have managed to create my patch file ok. I still get VAL0009 warnings and not sure what to do about them as the dlls are set to retrieve com data at build.

I have now got an issue that the when running the patch it is resetting the registry back to blank. I have 2 registry settings stored to hold SQL Server name and the Catalog name. I install these as blank entries then the user fills the details in and the registry is updated by the software.

Is there anyway to stop the patch clearing the registry settings.

Thanks



Glytzhkof

Glytzhkof
  • Moderators
  • 1,447 posts

Posted 27 January 2004 - 00:48

I believe a guideline from Installshield is to put all registry data you don't want to reset during upgrade in a separate feature. Then you can install the new patch and not specify that registry feature in REINSTALL. That way the registry settings are left alone. If you do add the registry feature to the list of features to reinstall I believe they will always revert registry settings back to default.

You could rename the registry key with the values you want to keep and then revert them back at the end of the install. Or you could write code to export the registry section at the beginning of the setup and import the old settings at the end. Here is some code that you can use to export registry settings to a file:

CODE
function ExportHKCUSettings( )  
   STRING szPath, szExportPath, szExportFile;
begin
   
   szPath = WindowsFolder ^ "regedit.exe";
   szExportPath = "HKEY_CURRENT_USER\\Software\\Company\\Product\\Version";
   szExportFile = "\"" + PersonalFolder ^ "RegistrySettings" + ".reg" + "\"";
   
   try
      nResult = LaunchAppAndWait (szPath,"/e " + szExportFile + " " + szExportPath, WAIT);
    catch
      Err.Clear();
   endcatch;

end;

Edited by Glytzhkof, 27 January 2004 - 00:51.

Regards
-Stein Åsmul