|
i'm also having the same problem - MSDE is not getting installed.
would u pls. inform me abt ur modified application.
where can i download it from?
i want to install .Net Framework and MSDE along with my Vb.Net Application
pls. do the favour
thanx kevin
"I firmly believe that
any man's finest hour,
the greatest fulfillment of all that holds dear,
is that moment,
when he has worked his heart out in a good cause
and lies exhausted in the field of battle - victorious..."
Sujith
|
|
|
|
|
Hi Kevin,
I love your program, thanks! Unfortunately I'm having the same trouble as people above. Settings file has
"MSDEInstallerPath=MSDE\
MSDEParams=/settings setup.ini INSTANCENAME= "Name" SAPWD="Password" SECURITYMODE=SQL"
but for some reason the checkbox for MSDE (on the initial screen) is never checked. Is there a way to change this manually, or to force it to process this part of the installation?
Thanks,
Katryn
|
|
|
|
|
I got this framework version v1.1.4322, so put it on the settings.ini file but i got an dialog that say that idon´t have the framework installed.
Another thing is that i say Install in the dialog box and i got another error (Windows Installer) parameter command line incorrect. so setup did not install.
I don't know whats the problem So if anyone can help....
Settings.ini
[Bootstrap]
Msi=Instalacion Conocimiento.msi
'LanguageDirectory=jpn
ProductName=Conocimiento
'DialogText=
'CaptionText=
'ErrorCaptionText=
FxInstallerPath=Update\
IEInstallerPath=IE60SP1\
MSIInstallerPath=Update\
MDACInstallerPath=Update\
MDACVersion=2.71
MSDEInstallerPath=MSDE\
MSDEParams=/settings setup.ini SAPWD="sa"
.NetVersion=v1.1.4322
the way tha i did the instalation.
With visual studio net i did the instaler for the net applicaction. Manually i move the files necesary to install the application (dotnetfx.exe) etc.
I have replaced the files setup and settings with the ne ones posted here.
I got somethig worong?
Juan Sebastian Gil
|
|
|
|
|
No, this is the error in setup. If you place all the files out side any folder it will work fine.
Please fix the setup.
I tried to: strcat(g_szMDACInstallerPathKey,g_tszMDAC);
in main.h, but it is giving some errors (ofcourse because i dont know C++)...
Please Help.
Rahul
|
|
|
|
|
Hi kevin
What about the other reccommended pre-requisites for installing a .Net app.
For example: JET 4.0 sp7, the year 2000 updates for windows 98, sp4 for Windows 2000, sp6a for NT 4.
Are these not strictly necessary? Or does your bootstrap app make the assumption they are already present?
Thanks
S
|
|
|
|
|
Look at http://support.microsoft.com/default.aspx?scid=kb;en-us;815177
I see requirements for a few things but not all of the items you specify.
Where did you get your info?
Thanks,
Kevin
|
|
|
|
|
Hi Kevin,
Finally got round to doing some proper testing with bootstrappers and the pre-requisites for deploying a .Net app.
See..
http://www.codeproject.com/dotnet/dotNetInstaller.asp?target=Installer&df=100&forumid=23954&select=868509&msg=868509#xx862546xx
Some pre-requisites missing from your bootstrapper are:
- Windows NT 4 Service Pack 6a English
- Windows 2000 Service Pack 2
- MS JET 4.0 Sp7-8 (which requires Windows 2000 Service Pack 3)
Btw, Windows Installer 2.0 is installed as part of the .NET Framework.
Best wishes
Sma
|
|
|
|
|
This looks like just the thing i need but i can't get it to work. It shows the "Setup is working. This may take several minutes...." and after that nothing.
Could u build in some kind of "/debug" switch into the executable wich shows and/or logs in more detail what is going on? That way it would be easier to find out what is going wrong.
I also found the "TeardownBillboard" does not always succeed in taking down the billboard and then it keeps waiting for all eternity. I changed the implementation into the following wich workes under winxp but fires an exception under win98se (my target platform). If i opt to ignore it all goes well.
void TeardownBillboard(DWORD dwThreadId, HANDLE hThread)
{
int retries = 10;
int i = 0;
do
{
PostThreadMessage( dwThreadId, PWM_THREADDESTROYWND, 0, 0 );
} while ( i++ < retries && WaitForSingleObject( hThread, 1000 ) == WAIT_TIMEOUT );
CloseHandle( hThread );
}
This is probably not the most elegant way to do this but i'm not familiar with windows api programming so if somebody has a better idea
|
|
|
|
|
This handy little program really brings back some memmories of just how nasty windows programming used to be! Since a lot of us probably don't have $1200 to drop on something like the new Wise installer studio plugin for VS.NET, or any of the other costly installer dev programs, this program is a great starting point for the home-brew bootstrapper alternative.
I've added some more options for installing MSDE and DirectX, while removing the redundant option for MSI, since both MSDE and the .NET framework will install that if not present. One thing I can't seem to locate the win api code for is how to check if a service is running. This would be the equivilent code for doing what the ServiceController() object in the .NET framework does. If someone could post a code snippet or even just a relevant function name or object that would really help me out. Thanks!
Kyle Kepley
~~~~~~~~~~~~
www.passfire.com
www.showsim.com
|
|
|
|
|
To anwer my own question, here's everything you could want to know about exploring windows services using the same win32 type code you will need to implement it in this bootstrapper:
http://www.codeproject.com/system/windowsservices.asp
The starting point is OpenSCManager(...), documented here:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/openservice.asp
The alternative to all this is to use the MSDE 2000 Deployment toolkit (RC), which is a free VS.NET add-in that will handle the .net framework and MSDE pre-installation prior to installing your app. However, I've found it to be problematic when re-installing over existing installs, and you have no control over its awkward user interface. You are really better off tailoring the bootstrapper found here.
-Kyle
|
|
|
|
|
Here's the actual code you can add for determining if MSDE should be installed prior to the app. The MSDE instance name should really be pulled from the .ini file, but I just hard coded it for simplicity here:
void checkMSDE()
{
if( IsServiceAvailable( "MSSQL$INSTANCE_NAME" ) )
MSDENeedsInstalling = false;
else
MSDENeedsInstalling = true;
}
BOOL IsServiceAvailable( LPCTSTR service_name )
{
SC_HANDLE hHandle = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if (hHandle == NULL) return FALSE;
SC_HANDLE hService = OpenService( hHandle, service_name, SERVICE_ALL_ACCESS );
if (!hService && GetLastError() != ERROR_ACCESS_DENIED ) return FALSE;
CloseServiceHandle(hHandle);
return TRUE;
}
The other challange would be to figure out how to uninstall MSDE when the app is uninstalled. This would be easiest to do from a custom uninstall action mapped to an install project in VS.NET. I haven't actually figured out how to automate the uninstall process for MSDE yet unfortunately.
-Kyle
|
|
|
|
|
Thanks for the information. I just updated the article with MSDE support. Unfortunately I didn't have the information you gave above. I just checked the registry to see if it was installed. See if the updated version works for you.
Kevin
|
|
|
|
|
Checking the registry would work too in most cases, except for the case where MSDE is installed but not running. Since the install process usually needs to build out the database tables and load them with data, making sure the MSDE service was actually running would be necessary.
I made some other changes as well, such as adding disk space requirements next to each item, with a running total at the bottom that updates when items are checked or unchecked. I removed the startup billboard because even on slow machines this dialog loads pretty fast. I also changed the command line parameters on the .net library loader so that it does not install in quiet mode. The quiet mode results in a blank screen for a substantial period of time after the install button is clicked, which leads the user to think the program aborted without finishing. It is better to let the user see the .net installer dialogs.
-Kyle
|
|
|
|
|
Sounds like you've been doing a great job on changing the program. I'd like to see your changes if you don't mind.
I agree with your changes to the .Net installer and setup dialog.
Great job!
Kevin
|
|
|
|
|
I'd have to clean up my code a bit if you wanted to use it, because it's pretty ugly right now. There's still a few other issues I have to figure out how to fix:
1) Installing MSDE causes a reboot in some cases, which causes the installer app to generate an error message about not being able to continue due to a system reboot. The exception that generates that message needs to be caught and the app quietly exit at that point.
2) Following an MSDE spawn reboot, the installer app needs to restart automatically so that the rest of the requirements can be installed. I'm not sure how to do this at present.
-Kyle
|
|
|
|
|
I am having the same problem as other people. The program runs, and hangs at "Please wait... Setup is working. This may take several minutes."
When I dubug it, it is getting stuck at the "WaitForSingleObject" line below -
void TeardownBillboard(DWORD dwThreadId, HANDLE hThread)<br />
{<br />
PostThreadMessage( dwThreadId, PWM_THREADDESTROYWND, 0, 0 );<br />
<br />
WaitForSingleObject( hThread, INFINITE );<br />
<br />
CloseHandle( hThread );<br />
}
|
|
|
|
|
Thanks for debugging this and finding the problem. I'm not sure if my latest version is on the side as I've removed those calls. I also have a version now that will install the Desktop SQL server program. Anyone want it?
Kevin
|
|
|
|
|
Hi Kevin,
i tried to use your program to install .net application. Your program hangs with a message "Setup is working. This may take several minutes...". Setup works fine if .net framework and .net application needs to be installed. But if you include MDAC & IE, then it hangs at this point.
Also when the installation for .Net Framework is going on, there is no messagebox is shown to user that something is being installed.
Could you please advise what should i do in order to install MDAC & IE also ??
thanks
Umesh
|
|
|
|
|
Could you give me a little more information on the system you are installing this on? Do you have the latest version of the program? The latest version doesn't show the dialog box except at the very beginning. This was removed because it was causing problems. Does the program not work when all 4 items need to be installed? Which operating system are you installing it on? What version of IE is on the system?
Thanks,
Kevin
|
|
|
|
|
Hi Kevin,
The program doesn't hang on me now but what ever system i run this program on, it only detects need for .net Framework only, it doesn't detect need for IE or MDAC, i am not installing MSDE so i am not worried about it. also it would be great if the program picks up desired MDAC version from settings.ini file. One more thing, after detecting need for .net framwork, the program doesn't show anything which can tell user that it is installing .net framework, a messege box with "Installing .net Framework......" will do great.
everything else is great on the program. I appreciate your effor on this.
my .ini file settings are as given below
********************************************
[Bootstrap]
Msi=SchoolBus\NewSchoolBus.msi
'LanguageDirectory=jpn
ProductName=SchoolBus
'DialogText=
'CaptionText=
ErrorCaptionText=ErrorOccurred
FxInstallerPath=DotNet
IEInstallerPath=.
MSIInstallerPath=DotNet
MDACInstallerPath=DotNet
MDACVersion=2.8
MSDEInstallerPath=.
'MSDEParams=/settings setup.ini SAPWD="strongpassword"
.NetVersion=v1.1
*************************************************************
-umesh
Umesh Sawnani
|
|
|
|
|
I have downloaded the version at the top of the page but find that it hangs also. The settings.ini is as follows:
<br />
[Bootstrap]<br />
Msi=Release\EasyWay2_EL.msi<br />
'LanguageDirectory=jpn<br />
ProductName=EasyWay2<br />
'DialogText=<br />
'CaptionText=<br />
'ErrorCaptionText=<br />
FxInstallerPath=.<br />
IEInstallerPath=IE6\<br />
MSIInstallerPath=.<br />
MDACInstallerPath=.<br />
MDACVersion=2.7<br />
MSDEInstallerPath=MSDE\<br />
'MSDEParams=/settings setup.ini SAPWD="sa"<br />
.NetVersion=v1.1<br />
Because I am running VS.Net 2002 I cannot open the solution file or project, and therefore cannot debug.
What is causing it to hang?
Is there a fixed version?
Does anyone have a VS 2002 project/solution file for this?
Many thanks,
Simon
|
|
|
|
|
You should be able to open the project file in 2002. Just create a new solution. Even if you want to create a new solution, just add the files that are there. There are not many of them.
When I get a break from my 16 hour days, I'll start work on it again.
|
|
|
|
|
Could you send me a zip file of your msi file & settings so that I can try it out?
I finally started working on it again and have found some problems that I am fixing.
|
|
|
|
|
Hi there, have to admit a nice app. I am just curious if you will be allowing your app too install the MSDE?
Regards
Jonathan
|
|
|
|
|
Shouldn't be too hard to do. Just need to add another item to the dialog and another setting. Want me to add it?
|
|
|
|