Reputation: 25
Newbie question, let me try and make this as clear as possible. I have a program that needs to silently execute a msi package (well multiple but that's not the problem)
The MSI packages are contained in a folder located in the same directory as my program. I've given it a simple name of "InstallFiles" for the time being.
I'm not keen on using the full path name eg. C:\my program\another directory\another directory etc because it'll be put on multiple PC's, old and new, in which case the drive letter can change. So far I have:
install.StartInfo.FileName = "msiexec";
install.StartInfo.Arguments = "/i F:\\InstallFiles\\JRE.msi";
install.Start();
install.WaitForExit();
However, when its launched it only gives me the Windows Installer switch information and then terminates, how do I get it to run and how would I go about changing the file path?
Upvotes: 2
Views: 14297
Reputation: 5569
use with the following switch:
/q[n|b|r|f]
Sets user interface level
n - No UI
b - Basic UI
r - Reduced UI
Check http://msdn.microsoft.com/en-us/library/windows/desktop/aa367988%28v=vs.85%29.aspx for detailed commandline options.
Upvotes: 2
Reputation: 2168
The executing of .msi file should be like .exe file that here is your answer : https://stackoverflow.com/a/12436300/359170
start the application with this code :
Process.Start("yourfile.msi");
and it don't need the full path, it adds current directory to the file name you written there.
But
System.IO.Directory.GetCurrentDirectory();
gets the current executed file directory. And you can get the file path by adding just the name of the file to it like this :
string path = System.IO.Directory.GetCurrentDirectory() + "\\yourfile.msi";
Upvotes: 1