/// <summary> /// Installs the OpenSauce libraries to the given HCE directory path. /// </summary> /// <exception cref="OpenSauceException"> /// Invalid HCE directory path. /// - or - /// Target directory does not exist. /// - or - /// Package does not exist. /// </exception> public void Install() { /// 1. EXTRACT packages from the entry assembly (usually a SFX AmaiSosu.GUI) /// 2. VERIFY the packages were extracted properly. /// 3. INSTALL packages. /// 4. INSTALL Direct3D9 Extensions /** * 1. Extraction */ WriteInfo("Extracting packages..."); SFX.Extract(new SFX.Configuration { Target = new DirectoryInfo( Paths.Temp) }); /** * 2. Verification */ WriteInfo("Verifying the OpenSauce installer."); var state = Verify(); if (!state.IsValid) { WriteAndThrow(new OpenSauceException(state.Reason)); } WriteSuccess("OpenSauce installer has been successfully verified."); /** * 4. Installation - packages */ WriteInfo("Attempting to install OpenSauce to the filesystem."); foreach (var package in _packages) { package.Install(); } WriteSuccess("OpenSauce has been successfully installed to the filesystem."); }