|
Thank you for the prompt reply. Its people like you, willing to help others, which makes the programming world a better place to code in.
Well, I do know that the MSIs can be run in Silent mode using the /q option but how do you create an update for an application using MSIs? I googled and found out that patches for applications can be made (.msp) but to use an MSI means to reinstall everthing. Now how do I use an MSI to reinstall everthing with the applciation running? Also, I would not want to package the whole application in the MSI, just the updates or patches. Of course, I could just download the changed files and update the application, but I would like to do this through a MSI file or an installation file.
Can you help?
Bikash Rai
|
|
|
|
|
Aw shucks
If you are creating the installer for your application part of that will have to be knowing how to handle cases where you try to copy a file over where one exists already and get an error showing that it is already in use. This is why installers tell people that they need to reboot after installing an update, to allow the files to be copied upon reboot before the application has been started up again.
This is typically done by the installer writing a small batch file on the fly that shows where files need to be copied (and from where - like a temp area) then placing a reference to the batch file into the Windows registry in the RunOnce key. The idea behind this key is that any executable file listed here is run on the next reboot, but Windows knows that (because it is called the RunOnce key) that once this file is run the reference to it is removed (so it is not run again, and again, and again...)
Doing all this is something that you need to manage in what ever tool you use to write your installations. Usually tools like Installshield and such handle this for you.
You could also have the installer look to see if the application is it trying to update is running and then either warn the user to close it first and retry the install or just close it yourself and restart it when your installer is done.
Until Windows Vista arrives, no matter what you do you will always have to deal with files that are in use and figure out what to do. Vista will have some things in place to handle this a bit better so you should not have to reboot as much as you do now, but until then you are on your own as to what to do. Depending on what you are updating (user level application or a system service or device driver) you will need to deal with files that are in use.
Personally, if you are updating something like a system service you can always just tell the user that you have to stop the service to do the update, then use the SCM APIS to stop the service, install the new files and then restart the service. Just keep in mind things like user security levels (The person running the update might not have the same security access as the person that installed the service in the first place so you might not be able to do this.
When I do updates, if I am just updating one file I only write that one file to keep the installer small. I know other people that install an entire new version of the application and only change one file. Again, it is up to you.
Good luck...
George Carlin wrote:
"Don't sweat the petty things, and don't pet the sweaty things."
Jörgen Sigvardsson wrote:
If the physicists find a universal theory describing the laws of universe, I'm sure the a**hole constant will be an integral part of that theory.
My Blog[^]
|
|
|
|
|
Hi Ray,
Thanks a mil. Just one small question though. Supposing I update the application using the method you told me, and it replaces the file in question, will the update be visible in the Add-REmove programs list. Supposing I add a new dll file to the update which was not there during the original installation, will the original uninstaller be able to detect the addition of the new dll file and do a clean uninstall? I want the original installer to detect the changes made by the updates. Also is it possible to make the updates visible in the Add-Remove programs so that the updates can be removed by the user if he/she wants?
Lastly, I am using VS.NET 2003 and the installer I use is the one that comes with VS.NET 2003.
Sorry for the volley of questions and thanks for helping.
Bikash Rai
|
|
|
|
|
The installer engine should be taking care of listing things in the add-remove programs list for you. That is what the installer engine in there for. Also, managing what happens upon un-install should be managed by that as well.
To be honest I have never looked into how the engine does it though so I am not sure how it knows what files to put back if you un-install an update that had replaced files.
I have seen some installers explicitly ask you where you want the originals backed up and then they create that folder and copy the original files there but I am not sure if that is just the fault of their installer engine or not.
If you make the updates visible on the add remove list then why worry about if the original installer will remove files that you added ad updates. Typically installers will NOT touch files, folders or registry entries that they did not put there. They do this to make sure that they do not inadvertently remove a file that they are not supposed to (like a users data file). This is how systems can get cluttered with 'stuff' after an application is un-installed. This is what system cleaners take care of.
George Carlin wrote:
"Don't sweat the petty things, and don't pet the sweaty things."
Jörgen Sigvardsson wrote:
If the physicists find a universal theory describing the laws of universe, I'm sure the a**hole constant will be an integral part of that theory.
My Blog[^]
|
|
|
|
|
Thanks Ray.
Any idea about the AVG Antivirus and where it stores it scheduled update information.
Bikash Rai
|
|
|
|
|
Nope, but I bet using Filemon from Sysinternals.com[^]and a few trys watching the update run I could find out.
Applications like that typically have their own custom updating schemes though. My quick guess is that they do one of the following:
1) Create a folder in user isolated storage, download the updates there and then put the files (uncompressing where needed) into the proper spots, then stop and restart their service...
2) Download the updated signatures and stuff into a temp folder in the temp directory and deal with them form there.
George Carlin wrote:
"Don't sweat the petty things, and don't pet the sweaty things."
Jörgen Sigvardsson wrote:
If the physicists find a universal theory describing the laws of universe, I'm sure the a**hole constant will be an integral part of that theory.
My Blog[^]
|
|
|
|
|
Thanks Ray. You have been a great help.
Bikash Rai
|
|
|
|
|
If you visit ‘Add Counter’ window in (WinXP) perfmon and select the ‘Memory’ performance object, you see several counters in the list below. Available bytes, Cache bytes and so on.
But for some reason my machine (WinXP) shows only one counter in this section. It happens to be ‘Available Mbytes’, only one entry. I have no idea where the others have gone.
I need to restore the default counters for ‘Memory’ performance object because I am working on a project which reads values of some of the counters I mentioned above. The code always fails on machine throwing an exception ‘instance name xxx is not valid for this counter category’
Can somebody help regarding what I can do to restore default performance counters?
Salil Khedkar [^]
|
|
|
|
|
Hi, in my small office use dial up networking to connect to the internet. But we use outlook express in order to send and receive mail. Because this computer are used by many people, what i want is to record the log of every sending and recieving e-mail. For example: Send From/To e-mail address, size of message, name of attachment file, subject and the period of sending or recieving e-mail. Is it possible to do that?
|
|
|
|
|
You can use GMail service. You need to set options to allow POP trafic. And when you do it you can use gmail with outlog. To see email send and recived you need to log on gmail account with browser and look in Send folder and you cann look under all mail. When outlog download an email from gmail, then the mail would not be deleted but it would store in all mail.
ps: To store the message you need to configure POP server to store it.
|
|
|
|
|
Thank you very much for your comment. I will try to do it and let you know about the result.
|
|
|
|
|
Hi
I'm about to do over my pc, will need to format. Lost my Norton Internet Securitys 2004 CD's container, which had the serial key on it. How do I find out what my NIS's serial key is?
Thanx!
|
|
|
|
|
You'll have to find the container. There is no way to ask the software what it is and no way to reverse it from something stored on the machine.
The other option is to call Symantec and see if they'll issue you a new serial number. There might be a fee for this though.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I couldn't find it in the registry either, and even if it was there - fat chance that it wouldnt be encrypted. Guess I'll go searching for a CD container with the words DO NOT LOSE THIS PRODUCT KEY written on the back. oi!
Thanx!
-- modified at 1:53 Tuesday 13th December, 2005
|
|
|
|
|
I dont know if I already posted this, excuse me if I posted already.
Through developing a printer driver I have stumbled on this question, there
are 2 types of surfaces Engine-managed, device-manged (standard and non
standard format).
In your opinion (and in the context of a printer driver) what is the best to
use and why? What are the differences between them and how are they
implemented? And above all is there any information or examples of each type
(I know that MSPLOT in the DDK implements a Device-managed non standard
surface).
Thanks in advance
Neoadam
|
|
|
|
|
How do I apply certain group policy settings like hide desktop icons, disable task manager, etc. to a Windows user group? I need to it on a domain as well as on a workgroup computer.
|
|
|
|
|
Active Directory and normal Domains support Group Policies, workgroups do not.
If you want to know how to do this stuff, it's WAY beyond the scope of a forum. I would highly suggest picking up the Windows 2000 Server (or whatever server your using for your domain controller/Active Directory servers), Resource Kit.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
If you are using Windows XP Proffesional, then click start and then click run.
Type:
gpedit.msc
|
|
|
|
|
I have created an index for the folder(windows2000 operating sys).
Now I want the script of Indexing. Where can I get the script?
Thanks,
Anant
|
|
|
|
|
What on earth are you talking about?
Script for index? There is no script. The index is for searching the filesystem and is stored in a folder off the root of the volume called System Volume Information, which you can't get to.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Dave Kreskowiak wrote: The index is for searching the filesystem and is stored in a folder off the root of the volume called System Volume Information
This is the answer that i need and just ask[^] you before.
|
|
|
|
|
No, that's NOT the same thing. What's in that folder is the Full Text Search indexing of files on the hard drive. It is not the FAT or MFT table.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Hi, does any one know please give me the resource or an instructure to do it:
1. I want the user that log on to my tablet pc, it would start Office OneNote to record the sound automatically. An application is minimize but not show in the task bar, it will keep itself running and an icon put on the system tray. When the user log off or turn off the computer, the sound recorder in onenote will save to specific location (Exp: C:\soundrecorder).
2. I want to record a log of user during the time that they turn on/off computer and during the time that user log on/off the user.
|
|
|
|
|
Are you trying to spy on someone?
My: Blog | Photos
"Man who stand on hill with mouth open will wait long time for roast duck to drop in." -- Confucious
|
|
|
|
|
Colin Angus Mackay wrote: Are you trying to spy on someone?
The answer could be yes and could be no. My main purpose to have this feature because i want to control my tablet pc only. On the other, it us useful to prevent unauthorize people to use my computer when i far away from it. If i really want to spy the other people, i will use spyware. But i'm not think in that way. Do you know how to do that?
|
|
|
|