예제 #1
0
 private void Dispose(bool disposing)
 {
     if (disposing)
     {
         _provider.Dispose();
     }
 }
예제 #2
0
        public ICompilerResult Compile()
        {
            CompilerParameters options = new CompilerParameters();

            if (_target != null)
            {
                AddCompilerOption("/target:" + _target);
            }
            if (_platform != null)
            {
                AddCompilerOption("/platform:" + _platform);
            }
            //options.GenerateExecutable = _generateExecutable;
            options.GenerateExecutable      = IsTargetExecutable(_target);
            options.GenerateInMemory        = _generateInMemory;
            options.IncludeDebugInformation = _debugInformation;

            // WarningLevel : from http://msdn.microsoft.com/en-us/library/13b90fz7.aspx
            //   0 Turns off emission of all warning messages.
            //   1 Displays severe warning messages.
            //   2 Displays level 1 warnings plus certain, less-severe warnings, such as warnings about hiding class members.
            //   3 Displays level 2 warnings plus certain, less-severe warnings, such as warnings about expressions that always evaluate to true or false.
            //   4 (the default) Displays all level 3 warnings plus informational warnings.
            options.WarningLevel = _warningLevel;

            options.OutputAssembly  = _outputAssembly;
            options.CompilerOptions = _compilerOptions;

            //foreach (string assembly in _referencedAssemblies)
            foreach (ReferencedAssembly assembly in _referencedAssemblies)
            {
                options.ReferencedAssemblies.Add(assembly.File);
            }

            foreach (ResourceFile resource in _embeddedResources)
            {
                options.EmbeddedResources.Add(resource.File);
            }

            CodeDomProvider provider = new JScriptCodeProvider();
            CompilerResults result   = provider.CompileAssemblyFromFile(options, _sources.ToArray());

            provider.Dispose();

            return(new CodeDomProviderCompilerResult(result));
        }