1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
[Extention(BaseInstallerPlugin.InstallerPluginGuid,
"{061EBBD7-C2D6-4d11-A057-66F877D31301}")]
public class MSSQLInstaller_Plugin : BaseInstallerPlugin
{
public override void AfterExtentionLoad(PackageInstallerProvider provider)
{
base.AfterExtentionLoad(provider);
MSSQLInstaller_Handler handler = new MSSQLInstaller_Handler(provider);
}
}
public class MSSQLInstaller_Handler : BaseInstallerEventHandlers
{
PackageInstallerProvider provider;
public virtual PackageInstallerProvider Provider
{
get { return provider; }
}
public MSSQLInstaller_Handler(PackageInstallerProvider provider)
{
this.provider = provider;
if (provider == null)
throw new ArgumentNullException("provider");
provider.InstallerEventsObjects.Handlers.Add(this);
}
SchemaMode mode = SchemaMode.Custom;
public virtual SchemaMode Mode
{
get { return mode; }
}
public override void OnExtendedEvent(InstallerHandler_ExtendedEvent eventCode, object[] parameters)
{
base.OnExtendedEvent(eventCode, parameters);
switch (eventCode)
{
case InstallerHandler_ExtendedEvent.OnBeginWizardCreation:
{
/* parameters[0] : form */
mode = (SchemaMode)parameters[1];
break;
}
}
}
public override void OnAfterExecuteSchemas(ISequencer sequencer, ISequencerCallBack callBack)
{
base.OnAfterExecuteSchemas(sequencer, callBack);
if (mode == SchemaMode.Install)
{
/*
* il faudrait peut être vérifié que MS SQLServer n'est pas déjà
* installé ... ^_^
*/
callBack.OnEnterStep("Installation de SQL Server", "..", 0, 1);
try
{
System.Diagnostics.ProcessStartInfo msSqlSetup = new System.Diagnostics.ProcessStartInfo();
msSqlSetup.FileName = Provider.TargetDir + Path.DirectorySeparatorChar + "SQLServerSetup.exe";
msSqlSetup.Arguments = "/silent"; //??? je sais pas là
System.Diagnostics.Process setup = System.Diagnostics.Process.Start(msSqlSetup);
setup.WaitForExit();
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.ToString());
}
callBack.OnLeaveStep(1, 1);
}
}
} |
Partager