static AssemblyWeaver() { BeforeAssemblyPath = Path.GetFullPath(@"..\..\..\AssemblyToProcess\bin\Debug\AssemblyToProcess.dll"); var beforePdbPath = Path.ChangeExtension(BeforeAssemblyPath, "pdb"); #if (!DEBUG) BeforeAssemblyPath = BeforeAssemblyPath.Replace("Debug", "Release"); beforePdbPath = beforePdbPath.Replace("Debug", "Release"); #endif AfterAssemblyPath = BeforeAssemblyPath.Replace(".dll", "2.dll"); var afterPdbPath = beforePdbPath.Replace(".pdb", "2.pdb"); File.Copy(BeforeAssemblyPath, AfterAssemblyPath, true); if (File.Exists(beforePdbPath)) { File.Copy(beforePdbPath, afterPdbPath, true); } var assemblyResolver = new MockAssemblyResolver(); var readerParameters = new ReaderParameters(); var writerParameters = new WriterParameters(); if (File.Exists(afterPdbPath)) { readerParameters.ReadSymbols = true; writerParameters.WriteSymbols = true; } var moduleDefinition = ModuleDefinition.ReadModule(AfterAssemblyPath, readerParameters); var weavingTask = new ModuleWeaver { ModuleDefinition = moduleDefinition, AssemblyResolver = assemblyResolver, LogInfo = LogInfo, LogWarning = LogWarning, LogError = LogError, DefineConstants = new[] { "DEBUG" } // Always testing the debug weaver }; weavingTask.Execute(); moduleDefinition.Write(AfterAssemblyPath, writerParameters); Assembly = Assembly.LoadFile(AfterAssemblyPath); }
static AssemblyWeaver() { BeforeAssemblyPath = Path.GetFullPath(@"..\..\..\AssemblyToProcess\bin\Debug\AssemblyToProcess.dll"); var beforePdbPath = Path.ChangeExtension(BeforeAssemblyPath, "pdb"); #if (!DEBUG) BeforeAssemblyPath = BeforeAssemblyPath.Replace("Debug", "Release"); beforePdbPath = beforePdbPath.Replace("Debug", "Release"); #endif AfterAssemblyPath = BeforeAssemblyPath.Replace(".dll", "2.dll"); var afterPdbPath = beforePdbPath.Replace(".pdb", "2.pdb"); File.Copy(BeforeAssemblyPath, AfterAssemblyPath, true); if (File.Exists(beforePdbPath)) File.Copy(beforePdbPath, afterPdbPath, true); var assemblyResolver = new MockAssemblyResolver(); var readerParameters = new ReaderParameters(); var writerParameters = new WriterParameters(); if (File.Exists(afterPdbPath)) { readerParameters.ReadSymbols = true; writerParameters.WriteSymbols = true; } var moduleDefinition = ModuleDefinition.ReadModule(AfterAssemblyPath, readerParameters); var weavingTask = new ModuleWeaver { ModuleDefinition = moduleDefinition, AssemblyResolver = assemblyResolver, LogInfo = LogInfo, LogWarning = LogWarning, LogError = LogError, DefineConstants = new[] { "DEBUG" } // Always testing the debug weaver }; weavingTask.Execute(); moduleDefinition.Write(AfterAssemblyPath, writerParameters); Assembly = Assembly.LoadFile(AfterAssemblyPath); }