Пример #1
0
        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>();
        }
Пример #3
0
        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);
            }
        }
Пример #8
0
        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;
        }
Пример #9
0
 private static PortableExecutableReference GetReference(MetadataFileProvider metadataFileProvider, Type t)
 {
     return metadataFileProvider.GetReference(t.Assembly.Location, MetadataReferenceProperties.Assembly);
 }
Пример #10
0
 private static PortableExecutableReference GetReference(MetadataFileProvider metadataFileProvider, Type t)
 {
     return(metadataFileProvider.GetReference(t.Assembly.Location, MetadataReferenceProperties.Assembly));
 }
Пример #11
0
 public SubmissionCompilationFactory(IEnumerable<string> importedNamespaces, MetadataFileProvider metadataFileProvider)
     : base(CheckNamespaces(importedNamespaces), metadataFileProvider)
 {
 }
 public SubmissionCompilationFactory(IEnumerable <string> importedNamespaces, MetadataFileProvider metadataFileProvider)
     : base(CheckNamespaces(importedNamespaces), metadataFileProvider)
 {
 }
Пример #13
0
 public ScriptEngine(MetadataFileProvider metadataFileProvider = null, IAssemblyLoader assemblyLoader = null)
     : base(metadataFileProvider, assemblyLoader)
 {
 }
 public ScriptEngine(MetadataFileProvider metadataFileProvider = null, IAssemblyLoader assemblyLoader = null)
     : base(metadataFileProvider, assemblyLoader)
 {
 }
Пример #15
0
        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>());
        }
Пример #16
0
        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));
        }