public void Execute(SetEventActionTrigger setEventActionTrigger, EventActionContext context) { try { var script = string.Empty; var metaProvider = new MetadataFileProvider(); metaProvider.GetReference(context.GetType().Assembly.Location); var scriptEngine = new ScriptEngine(metaProvider); var session = scriptEngine.CreateSession(context); session.AddReference( @"C:\Users\ninoc\Documents\Visual Studio 2015\Projects\HybridIntegrationServices\Framework\bin\Debug\Framework.exe"); session.AddReference( @"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Windows.Forms.dll"); if (this.ScriptFile != null || this.ScriptFile != string.Empty) { // TODO 1020 // ReSharper disable once AssignNullToNotNullAttribute script = File.ReadAllText(this.ScriptFile); session.ExecuteFile(script); } else { session.Execute(this.Script); } } catch (Exception) { // ignored } }
private static ReadOnlyArray<Module> CreateAssemblyModules(PEFileReader peFileReader, string assemblyResolvedPath, MetadataFileProvider fileProvider) { List<Module> modules = new List<Module>(); modules.Add(new Module(peFileReader)); foreach (string moduleFileName in peFileReader.GetMetadataModuleNames()) { string modulePath; try { modulePath = fileProvider.ProvideModuleFile(assemblyResolvedPath, moduleFileName); } catch (Exception e) { throw new FileNotFoundException(e.Message, moduleFileName); } if (modulePath == null) { throw new FileNotFoundException("Module not found", moduleFileName); } modules.Add(CreateModuleFromFile(modulePath)); } return modules.AsReadOnly<Module>(); }
private Compilation CreateCompilation(Project project) { var outputPath = project.GetProperty("OutputPath").EvaluatedValue; if (!Path.IsPathRooted(outputPath)) { outputPath = Path.Combine(Environment.CurrentDirectory, outputPath); } var searchPaths = ReadOnlyArray.OneOrZero(outputPath); var resolver = new DiskFileResolver(searchPaths, searchPaths, Environment.CurrentDirectory, arch => true, System.Globalization.CultureInfo.CurrentCulture); var metadataFileProvider = new MetadataFileProvider(); // just grab a list of references (if they're null, ignore) var list = project.GetItems("Reference").Select(item => { var include = item.EvaluatedInclude; var path = resolver.ResolveAssemblyName(include); if (path == null) return null; return metadataFileProvider.GetReference(path); }).Where(x => x != null); return Compilation.Create(project.GetPropertyValue("AssemblyName"), syntaxTrees: project.GetItems("Compile").Select(c => SyntaxTree.ParseFile(c.EvaluatedInclude)), references: list); }
internal static Assembly CreateAssemblyFromFile(string metadataFile, string resolvedPath, MetadataFileProvider fileProvider) { PEFileReader peFileReader = CreatePEFileReaderFromFile(metadataFile); if (!peFileReader.IsAssembly) { throw new MetadataReaderException(MetadataReaderErrorKind.InvalidPEKind); } var modules = CreateAssemblyModules(peFileReader, resolvedPath, fileProvider); return new Assembly(metadataFile, modules); }
internal CommonSubmissionCompilationFactory(IEnumerable <string> importedNamespaces, MetadataFileProvider metadataFileProvider) { if (metadataFileProvider == null) { metadataFileProvider = MetadataFileProvider.Default; } this.initialAssemblyReferences = new MetadataReference[] { metadataFileProvider.GetReference(typeof(object).Assembly.Location, MetadataReferenceProperties.Assembly), metadataFileProvider.GetReference(typeof(Session).Assembly.Location, MetadataReferenceProperties.Assembly) }.AsReadOnlyWrap(); this.initialNamespaceImports = importedNamespaces.AsReadOnlyOrEmpty(); this.assemblyNamePrefix = globalAssemblyNamePrefix + "#" + Interlocked.Increment(ref engineIdDispenser); this.metadataFileProvider = metadataFileProvider; }
internal CommonSubmissionCompilationFactory(IEnumerable<string> importedNamespaces, MetadataFileProvider metadataFileProvider) { if (metadataFileProvider == null) { metadataFileProvider = MetadataFileProvider.Default; } this.initialAssemblyReferences = new MetadataReference[] { metadataFileProvider.GetReference(typeof(object).Assembly.Location, MetadataReferenceProperties.Assembly), metadataFileProvider.GetReference(typeof(Session).Assembly.Location, MetadataReferenceProperties.Assembly) }.AsReadOnlyWrap(); this.initialNamespaceImports = importedNamespaces.AsReadOnlyOrEmpty(); this.assemblyNamePrefix = globalAssemblyNamePrefix + "#" + Interlocked.Increment(ref engineIdDispenser); this.metadataFileProvider = metadataFileProvider; }
public byte[] Execute(ActionEvent actionEvent, ActionContext context) { try { Context = context; ActionEvent = actionEvent; var script = string.Empty; var metaProvider = new MetadataFileProvider(); metaProvider.GetReference(context.GetType().Assembly.Location); var scriptEngine = new ScriptEngine(metaProvider); var session = scriptEngine.CreateSession(context); // TODO 1040 session.AddReference( @"C:\Users\ninoc\Documents\Visual Studio 2015\Projects\HybridIntegrationServices\Framework\bin\Debug\Framework.exe"); session.AddReference( @"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Windows.Forms.dll"); // TODO 1041 if (ScriptFile != null || ScriptFile != string.Empty) { // ReSharper disable once AssignNullToNotNullAttribute script = File.ReadAllText(ScriptFile); session.ExecuteFile(script); } else { session.Execute(Script); } return(null); } catch { // ignored return(null); } }
internal CommonScriptEngine(MetadataFileProvider metadataFileProvider, IAssemblyLoader assemblyLoader) { if (metadataFileProvider == null) { metadataFileProvider = MetadataFileProvider.Default; } if (assemblyLoader == null) { assemblyLoader = new AssemblyLoader(); } var initialReferences = new List <MetadataReference>() { metadataFileProvider.GetReference(typeof(object).Assembly.Location, MetadataReferenceProperties.Assembly), metadataFileProvider.GetReference(typeof(Session).Assembly.Location, MetadataReferenceProperties.Assembly), }; this.assemblyNamePrefix = globalAssemblyNamePrefix + "#" + Interlocked.Increment(ref engineIdDispenser); this.metadataFileProvider = metadataFileProvider; this.collectibleCodeManager = new CollectibleCodeManager(assemblyLoader, assemblyNamePrefix); this.uncollectibleCodeManager = new UncollectibleCodeManager(assemblyLoader, assemblyNamePrefix); string initialBaseDirectory; try { initialBaseDirectory = Directory.GetCurrentDirectory(); } catch { initialBaseDirectory = null; } this.fileResolver = CreateFileResolver(DefaultReferenceSearchPaths, initialBaseDirectory); this.importedNamespaces = new List <string>(); this.references = initialReferences; }
private static PortableExecutableReference GetReference(MetadataFileProvider metadataFileProvider, Type t) { return metadataFileProvider.GetReference(t.Assembly.Location, MetadataReferenceProperties.Assembly); }
private static PortableExecutableReference GetReference(MetadataFileProvider metadataFileProvider, Type t) { return(metadataFileProvider.GetReference(t.Assembly.Location, MetadataReferenceProperties.Assembly)); }
public SubmissionCompilationFactory(IEnumerable<string> importedNamespaces, MetadataFileProvider metadataFileProvider) : base(CheckNamespaces(importedNamespaces), metadataFileProvider) { }
public SubmissionCompilationFactory(IEnumerable <string> importedNamespaces, MetadataFileProvider metadataFileProvider) : base(CheckNamespaces(importedNamespaces), metadataFileProvider) { }
public ScriptEngine(MetadataFileProvider metadataFileProvider = null, IAssemblyLoader assemblyLoader = null) : base(metadataFileProvider, assemblyLoader) { }
private static ReadOnlyArray <Module> CreateAssemblyModules(PEFileReader peFileReader, string assemblyResolvedPath, MetadataFileProvider fileProvider) { List <Module> modules = new List <Module>(); modules.Add(new Module(peFileReader)); foreach (string moduleFileName in peFileReader.GetMetadataModuleNames()) { string modulePath; try { modulePath = fileProvider.ProvideModuleFile(assemblyResolvedPath, moduleFileName); } catch (Exception e) { throw new FileNotFoundException(e.Message, moduleFileName); } if (modulePath == null) { throw new FileNotFoundException("Module not found", moduleFileName); } modules.Add(CreateModuleFromFile(modulePath)); } return(modules.AsReadOnly <Module>()); }
internal static Assembly CreateAssemblyFromFile(string metadataFile, string resolvedPath, MetadataFileProvider fileProvider) { PEFileReader peFileReader = CreatePEFileReaderFromFile(metadataFile); if (!peFileReader.IsAssembly) { throw new MetadataReaderException(MetadataReaderErrorKind.InvalidPEKind); } var modules = CreateAssemblyModules(peFileReader, resolvedPath, fileProvider); return(new Assembly(metadataFile, modules)); }