|
Thanks for the link. I downloaded and used it. Didn't find anything other than what I expected to be in the MSI package. It will be a handy tool to have around. Need to make time to look at the source code.
Today I ran the installer with logging on and Process Monitor running. Examined the log file and the Process Monitor data but did not find any errors of note or anything else relevant to the problem.
However Mike Dimmick posted a reply that I believe contains the answer and some possible solutions. It's quite detailed if you're interested. It turns out that two MSI installers installing the same DLL in the same directory is not as straightforward an operation as I had expected.
Thanks again for your help. I learned a lot from the exercise.
BDF
A learned fool is more a fool than an ignorant fool.
-- Moliere
|
|
|
|
|
I looked at Mike's reply, and his MVP status is well earned, and in these forums, his replies are always most excellent. Anyhow, as long as my replies did not push you down unnecessary blind alleys
modified 1-Aug-19 21:02pm.
|
|
|
|
|
Right, I think your problem here is most likely to be that the file has different GUIDs in the different installers.
Windows Installer tracks 'components', not files. It determines whether a component is installed or not by checking the KeyPath of the component - this is the file, registry key, directory or ODBC data source which it uses to determine whether the component is up to date. Visual Studio generates one component per file or registry key.
You can get into serious trouble if the same file is referenced by more than one component GUID on the machine. For each component installed by a product, Windows Installer remembers the key path that the component was installed to. When the number of references for a component in a given location drops to zero (the actual references are recorded, not the count, so it's more like GC than reference counting), all the resources for that component are removed, even if another component is still referencing the resource.
To avoid this problem, you must either: install the component privately, or if that isn't possible, ensure that the same GUID is used in both products.
I believe the only way to get VS to do this is to build a merge module containing the shared component, and consume that merge module in both installers.
Now for some more fun: although you've told it to self-register at install time, Visual Studio also tries to extract the registry information at install package build time, and uses the extracted data to populate the Class table[^] and the other associate COM tables. This causes Windows Installer to generate special registry entries when installing the class, an extra load of gibberish in a REG_MULTI_SZ value called LocalServer32 in the LocalServer32 key. This data tells Windows to give Windows Installer control when the object is created; Windows Installer checks whether the component is installed and if it needs to be repaired. If so you'll get a repair dialog. If the version numbers are different between client and server, this may happen; if it can't find the original installer, it may prompt for source.
Again, I think this can be reduced by ensuring the GUIDs are the same.
If you don't need to support Windows Installer's enterprise features, it may be easier all around if you use a tool that does not build Windows Installer databases. It's much much harder to make an MSI that works properly when deployed through Group Policy/Active Directory anyway.
DoEvents: Generating unexpected recursion since 1991
|
|
|
|
|
Thank you so much for that detailed reply. As this is not our most pressing issue and we have an interim solution, I'll be waiting until my new book arrives in the mail before exploring further.
I'd like to attempt the merge module approach, which I'll try after studying the book a bit. I thought it would be better to have MSI installers but it might be more trouble than it's worth. It's always nice to have options though.
Thanks again, Mike. Once again I'm humbled by how much I don't know.
BDF
A learned fool is more a fool than an ignorant fool.
-- Moliere
|
|
|
|
|
Big Daddy Farang wrote: I thought it would be better to have MSI installers but it might be more trouble than it's worth.
That's been my experience with MSI as well. Lots of headaches for zero benefit. I will never use it for a project if I have a say in the matter.
|
|
|
|
|
Hi
I am a Software tester and need to write test cases for testing MSagent.
I have written a few like opening MS office applications and playing with the office assistant, downloading new characters, opening websites that use MSagent.
Any other innovative ideas on how to test the technology would be of great help.
Regards
Srinivas
|
|
|
|
|
I am writing a C# program to return the permissions of a reg key passed in to the program. i have the main registry part working with one exception when I try to read a key that has a space in the path I get a null exception that is not caught by my error handleing.
issue 1:
RegistryKey
regkey = Registry.LocalMachine;
regKey = regKey.OpenSubKey("Software");
regKey = regkey.openSubKey("Adobe");
regkey = regKey.OpenSubKey("Adobe Reader");
try
{
RegistrySecurity regSecurity = regKey.GetAccessControl();
}
catch (argumentNullException e)
{
Console.WriteLine("Error", e);
}
Issue 2:
why does my try/catch not catch the error?
Thanks
Rob
|
|
|
|
|
I'd post this into the C#-Forum.
Cheers,
Sebastian
--
"If it was two men, the non-driver would have challenged the driver to simply crash through the gates. The macho image thing, you know." - Marc Clifton
|
|
|
|
|
Hi,
Why would I get an:
'regsvr32' is not recognized as an internal or external command, operable program or batch file.
TIA.
----------------------------------------------------------
Every nation state's armed forces call themselves 'Defence',
makes me wonder why there are conflicts in the world.
|
|
|
|
|
Hi,
works on my Vista system.
regsvr32.exe is located in C:\Windows\system32
|
|
|
|
|
Works fine here, not sure why in your case it isn't coming up.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
We have a windows service which spawns a browser.
To enable this operation,the service has been configured to "Interact with Desktop",runig as localsystem account.
This does the desired,in most of the windows environments(2000,XP,2003).
However,in some of the Windows 2003 boxes(not all),we find no visible browser instance.
However,we have confirmed that the browser is indeed spawned under the 'SYSTEM' account through the task manager.
This confirms that there is no problem in the execution of the executable as such.
We have explicitly set the 'visible' property of the IE browser handle to 'true'.
Is there some security setting/configuration that may potentially have been flagged to suppress the 'visibility' of the browser in these specific 2003 hosts?
Any help on finding the source of this 'invisibility' of the browser will be much appreciated.
Note:This happens only when the browser is spawned from a service.When spwned from command line(interactive),things work fine even in these particular hosts.
|
|
|
|
|
We've found that it can take a system reboot before the interactivity of a newly-installed service starts working.
In addition, this only works if you're logged in on the console session (session 0). For Remote Desktop/Terminal Services, run mstsc /console .
You should move away from this approach ASAP as Windows Vista and Windows Server 2008 have locked down session 0: you can no longer spawn processes that will appear on the user's desktop.
DoEvents: Generating unexpected recursion since 1991
|
|
|
|
|
Thanks.
One clarification - what is the option to do a similar operation on widows vista/2008 server?
If we impersonate a logged-on user,though we do not see the browser,it serves the purpose for us.
Will impersonating a interactvie user for a process launched from a windows service continue to work in vista/2008?
Or will that be clamped on too?
|
|
|
|
|
Hello,
I posted a question into the Lounge regarding how to read the registry of one Win95 that doesn't boot.
The answers I've got are great, and refer me to use the regedit in real mode.
I can get access to it by using a floppy drive with a boot disk (it seems that it is not the same OS version so I cannot make a "sys c:" to make it bootable again).
What I've tried till now is to use regedit in real mode as it is explained in several pages in the Internet:
regedit /l:c:\windows\system.dat /r:c:\windows\user.dat /e c:\file.txt
That instruction should read the DAT files contents and write them into the c:\file.txt.
The problem is that if I open the USER.DAT file using an editor I can read some strings that make me think that the information that I need is inside that file (some paths to the program which configuration I need to recover) but when I execute that instruction a complete registry dump is made, but those strings disappear completely.
I must be doing something wrong, but I have no clue on what can be.
Do you have any idea that could help?
As always thank you in advance.
|
|
|
|
|
It seems that there is a little application that can show the contents of a .DAT file the refers to the registry:
SYSTEM.DAT and USER.DAT in win95 & 98.
It is called RegDat and it is shareware.
I can promise you I've almost become mad trying to find it out.
Moreover, at the end it has not been useful...
Time to go home...
|
|
|
|
|
hey all,
I am a system admin and facing a lot of troubles in the operetors computers. they are bringing with them flash memories ( memory stick) which is not allowed.
is there any way to stop it? without disabling the usb port?
10x
|
|
|
|
|
OK,
Tell me is there any other utilities of using the USB port on ur clients?
You can deny access to USB port. But it depends on OS, how u will do it?
Which OS u r using?
|
|
|
|
|
if the users bring flashdrives and introduce viruses to your network, try panda antivirus. the only other way is to disable USB port.
---------------------------
Both optimists and pessimists are important in technology. The optimist invented the aeroplane; the pessimist invented the parachute.
Regards,
Hesbon Ongira
Nairobi, Kenya.
|
|
|
|
|
If you just want to block user from downloading information from pc,you may just disable write access properties for USB port by using system Registry.Or if you want block user from accessing USB for any purpose, you may also using registry or policy setting.
I am just using registry for block user from access usb port
Hope this help
|
|
|
|
|
i need to develop a application for taskmonitoring(operating system).will there be any pluggin applications to monitor the tasks in a system(free downloads) in the net,or get details about that
|
|
|
|
|
What's wrong with Task Manager or using the Performance Monitor?
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
Dear All,
I have removed system user rights in windows xp and now i am unable to log in and even i can't go into windows xp. please help me out . how to add rights to this.
waseem
|
|
|
|
|
waseem khan wrote: emoved system user rights in windows xp and now i am unable to log in
Are you surprised?
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
Not sure if this is the best forum, but it is relating to an operating system not booting.
I've now seen for the second time a computer where the partition table on the boot disk has been lost, meaning that no partitions exist on the disk.
In both instances, I've managed to recreate the partition with a Linux based CD, which recovered all the data, and then fixed the master boot record of the boot device and all was fine.
But in both instances, I haven't been able to find the root cause of the problem. I'm not aware of any programs that can do this, or anything a user can do to cause this, and I think it's happening at too low a level and too specific to be a virus.
Any thoughts, ideas, suggestions or possible answers would great!!
------------------------
Luke Lovegrove
------------------------
|
|
|
|