| File: FrameworkFork\Microsoft.CodeDom\Compiler\CompilerParameters.cs | Web Access |
| Project: src\src\dotnet-svcutil\lib\src\dotnet-svcutil-lib.csproj (dotnet-svcutil-lib) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. namespace Microsoft.CodeDom.Compiler { using System; using Microsoft.CodeDom; using System.Collections; using System.Collections.Specialized; using Microsoft.Win32; using Microsoft.Win32.SafeHandles; using System.Runtime.InteropServices; using System.Runtime.Versioning; /// <devdoc> /// <para> /// Represents the parameters used in to invoke the compiler. /// </para> /// </devdoc> // [Serializable], public class CompilerParameters { // [OptionalField] // Not available in DNX (NetCore) private string _coreAssemblyFileName = String.Empty; private StringCollection _assemblyNames = new StringCollection(); // [OptionalField] // Not available in DNX (NetCore) private StringCollection _embeddedResources = new StringCollection(); // [OptionalField] // Not available in DNX (NetCore) private StringCollection _linkedResources = new StringCollection(); private string _outputName; private string _mainClass; private bool _generateInMemory = false; private bool _includeDebugInformation = false; private int _warningLevel = -1; // -1 means not set (use compiler default) private string _compilerOptions; private string _win32Resource; private bool _treatWarningsAsErrors = false; private bool _generateExecutable = false; private TempFileCollection _tempFiles; /// <devdoc> /// <para> /// Initializes a new instance of <see cref='Microsoft.CodeDom.Compiler.CompilerParameters'/>. /// </para> /// </devdoc> public CompilerParameters() : this(null, null) { } /// <devdoc> /// <para> /// Initializes a new instance of <see cref='Microsoft.CodeDom.Compiler.CompilerParameters'/> using the specified /// assembly names. /// </para> /// </devdoc> public CompilerParameters(string[] assemblyNames) : this(assemblyNames, null, false) { } /// <devdoc> /// <para> /// Initializes a new instance of <see cref='Microsoft.CodeDom.Compiler.CompilerParameters'/> using the specified /// assembly names and output name. /// </para> /// </devdoc> public CompilerParameters(string[] assemblyNames, string outputName) : this(assemblyNames, outputName, false) { } /// <devdoc> /// <para> /// Initializes a new instance of <see cref='Microsoft.CodeDom.Compiler.CompilerParameters'/> using the specified /// assembly names, output name and a whether to include debug information flag. /// </para> /// </devdoc> public CompilerParameters(string[] assemblyNames, string outputName, bool includeDebugInformation) { if (assemblyNames != null) { ReferencedAssemblies.AddRange(assemblyNames); } _outputName = outputName; _includeDebugInformation = includeDebugInformation; } /// <summary> /// The "core" or "standard" assembly that contains basic types such as <code>Object</code>, <code>Int32</code> and the like /// that is to be used for the compilation.<br /> /// If the value of this property is an empty string (or <code>null</code>), the default core assembly will be used by the /// compiler (depending on the compiler version this may be <code>mscorlib.dll</code> or <code>System.Runtime.dll</code> in /// a Framework or reference assembly directory).<br /> /// If the value of this property is not empty, CodeDOM will emit compiler options to not reference <em>any</em> assemblies /// implicitly during compilation. It will also explicitly reference the assembly file specified in this property.<br /> /// For compilers that only implicitly reference the "core" or "standard" assembly by default, this option can be used on its own. /// For compilers that implicitly reference more assemblies on top of the "core" / "standard" assembly, using this option may require /// specifying additional entries in the <code>Microsoft.CodeDom.Compiler.<bold>ReferencedAssemblies</bold></code> collection.<br /> /// Note: An <code>ICodeCompiler</code> / <code>CoodeDomProvider</code> implementation may choose to ignore this property. /// </summary> public string CoreAssemblyFileName { get { return _coreAssemblyFileName; } set { _coreAssemblyFileName = value; } } /// <devdoc> /// <para> /// Gets or sets whether to generate an executable. /// </para> /// </devdoc> public bool GenerateExecutable { get { return _generateExecutable; } set { _generateExecutable = value; } } /// <devdoc> /// <para> /// Gets or sets whether to generate in memory. /// </para> /// </devdoc> public bool GenerateInMemory { get { return _generateInMemory; } set { _generateInMemory = value; } } /// <devdoc> /// <para> /// Gets or sets the assemblies referenced by the source to compile. /// </para> /// </devdoc> public StringCollection ReferencedAssemblies { get { return _assemblyNames; } } /// <devdoc> /// <para> /// Gets or sets the main class. /// </para> /// </devdoc> public string MainClass { get { return _mainClass; } set { _mainClass = value; } } /// <devdoc> /// <para> /// Gets or sets the output assembly. /// </para> /// </devdoc> public string OutputAssembly { get { return _outputName; } set { _outputName = value; } } /// <devdoc> /// <para> /// Gets or sets the temp files. /// </para> /// </devdoc> public TempFileCollection TempFiles { get { if (_tempFiles == null) _tempFiles = new TempFileCollection(); return _tempFiles; } set { _tempFiles = value; } } /// <devdoc> /// <para> /// Gets or sets whether to include debug information in the compiled /// executable. /// </para> /// </devdoc> public bool IncludeDebugInformation { get { return _includeDebugInformation; } set { _includeDebugInformation = value; } } /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> public bool TreatWarningsAsErrors { get { return _treatWarningsAsErrors; } set { _treatWarningsAsErrors = value; } } /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> public int WarningLevel { get { return _warningLevel; } set { _warningLevel = value; } } /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> public string CompilerOptions { get { return _compilerOptions; } set { _compilerOptions = value; } } /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> public string Win32Resource { get { return _win32Resource; } set { _win32Resource = value; } } /// <devdoc> /// <para> /// Gets or sets the resources to be compiled into the target /// </para> /// </devdoc> [ComVisible(false)] public StringCollection EmbeddedResources { get { return _embeddedResources; } } /// <devdoc> /// <para> /// Gets or sets the linked resources /// </para> /// </devdoc> [ComVisible(false)] public StringCollection LinkedResources { get { return _linkedResources; } } } }