private void showPostSharpInstallStatus(IGacDll gacDll) { //if (gacDll.PostSharpHooks == PostSharpHookStatus.NotCalculated) if (PostSharpUtils.containsO2PostSharpHooks(gacDll.fullPath)) { gacDll.PostSharpHooks = PostSharpHookStatus.Installed; } else { gacDll.PostSharpHooks = PostSharpHookStatus.NotInstalled; } switch (gacDll.PostSharpHooks) { case PostSharpHookStatus.Installed: lbPostSharpHooksState.Text = "YES"; lbPostSharpHooksState.ForeColor = Color.DarkGreen; btInstallPostSharpHooks.Enabled = false; btUnInstallPostSharpHooks.Enabled = true; break; case PostSharpHookStatus.NotInstalled: lbPostSharpHooksState.Text = "NO"; lbPostSharpHooksState.ForeColor = Color.DarkRed; btInstallPostSharpHooks.Enabled = true; btUnInstallPostSharpHooks.Enabled = false; break; case PostSharpHookStatus.NotCalculated: lbPostSharpHooksState.Text = "..."; lbPostSharpHooksState.ForeColor = Color.Black; btInstallPostSharpHooks.Enabled = false; btUnInstallPostSharpHooks.Enabled = false; break; } }
public void InstallPostSharpHook(IGacDll iGacDll, string typeToHook, string methodToHook) { if (false == PostSharpUtils.containsO2PostSharpHooks(iGacDll.fullPath)) { IISDeployment.kill_IIS_Process_W3wp(); BackupRestoreFiles.backup(iGacDll.fullPath); if (PostSharpExecution.InsertHooksAndRunPostSharpOnAssembly(iGacDll.fullPath, typeToHook, methodToHook)) { DI.log.debug("PostSharp hooks installed on Gac Assembly: {0} (in {1})", iGacDll.name, iGacDll.fullPath); } } showGacAssemblyDetails(iGacDll, false); //throw new NotImplementedException(); }
public string runPostSharpOnAssembly() { var assemblyOriginal = compileFileToExe(); var assemblyCopy = Files.Copy(assemblyOriginal, assemblyOriginal + "_PS.exe"); var assembly = CecilUtils.getAssembly(assemblyCopy); InjectAttributes.addO2PostSharpHookAttribute(assembly); InjectAttributes.addOnMethodInvocationttribute(assembly, assembly.Name.Name, "*", "TestScript_MultipleCalls", "validate"); assembly.Name.PublicKey = null; AssemblyFactory.SaveAssembly(assembly, assemblyCopy); Hacks.patchAssemblyForCecilPostSharpBug(assemblyCopy); InjectAttributes.addO2PostSharpHookAttribute(assemblyCopy); Assert.That(PostSharpExecution.runPostSharpOnAssembly(assemblyCopy)); Assert.That(true == PostSharpUtils.arePostSharpDllsAddedAsReferences(assemblyCopy)); Assert.That(false == PostSharpUtils.arePostSharpDllsAddedAsReferences(assemblyOriginal)); log.info("runPostSharpOnAssembly executed ok"); return(assemblyCopy); }