private static void InitializeTransformer(IEnumerable<string> args) { var showHelp = false; var globalOptions = new OptionSet { { "h|?", "Show this help message and exit.", v => showHelp = v != null } }; globalOptions.Add ("d|targetDir=", "The (root) directory containing the targeted assemblies.", dir => _workingDirectory = dir); var fileSystem = new FileSystem.FileSystem(); Dictionary<string, OptionSet> options = new Dictionary<string, OptionSet>(); globalOptions.Parse (args); // -- create AppDomainInfoBroker _workingDirectory = _workingDirectory.Replace ("\"", ""); _workingDirectory = _workingDirectory.TrimEnd (new[] { '\\' }); _infoBroker = new AppDomainInfoBroker (_workingDirectory); ((DefaultAssemblyResolver) GlobalAssemblyResolver.Instance).RemoveSearchDirectory ("."); ((DefaultAssemblyResolver) GlobalAssemblyResolver.Instance).RemoveSearchDirectory ("bin"); ((DefaultAssemblyResolver) GlobalAssemblyResolver.Instance).AddSearchDirectory (_workingDirectory); // -- create all the transformations var transformationFactoryFactory = new DLLBasedTransformationFactoryFactory (fileSystem, _workingDirectory); transformationFactoryFactory.TransformationsDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); transformationFactoryFactory.AddOptions (globalOptions); // -- add the assembly tracker var trackerFactory = new DirectoryBasedAssemblyTrackerFactory (fileSystem, _workingDirectory); trackerFactory.AddOptions (globalOptions); // -- add the assembly signer _signerFactory = new AssemblySignerFactory (fileSystem); _signerFactory.AddOptions (globalOptions); // load the given transformations globalOptions.Parse (args); _transformationFactories = transformationFactoryFactory.CreateTrackerFactories (); // -- add options of the transformations foreach (var factory in _transformationFactories) { var tempOptions = new OptionSet(); factory.AddOptions (tempOptions); options[factory.GetType().Name] = tempOptions; } try { var allOptions = new OptionSet(); foreach (var option in globalOptions) allOptions.Add (option); foreach (var set in options.Values) foreach (var option in set) allOptions.Add (option); var leftOver = allOptions.Parse (args); trackerFactory.IncludeFiles = leftOver.Where (s => (!s.StartsWith ("-") || !s.StartsWith ("\\"))).ToList(); _targetFiles = trackerFactory.IncludeFiles; leftOver.RemoveAll (s => (!s.StartsWith ("-") || !s.StartsWith ("\\"))); if (showHelp || leftOver.Count != 0) ShowHelp (globalOptions, options, leftOver); } catch (OptionException e) { Console.WriteLine (e.Message); ShowHelp (globalOptions, options, new string[0]); } _trackerFactory = trackerFactory; }
public void SetUp() { _fileSystemMock = MockRepository.GenerateStrictMock<IFileSystem>(); _factory = new DirectoryBasedAssemblyTrackerFactory (_fileSystemMock, "something"); _assemblyDefinition1 = AssemblyDefinitionObjectMother.CreateAssemblyDefinition (); _assemblyDefinition2 = AssemblyDefinitionObjectMother.CreateAssemblyDefinition (); _assemblyDefinition3 = AssemblyDefinitionObjectMother.CreateAssemblyDefinition (); _readerParams = new ReaderParameters { ReadSymbols = true }; }