zoukankan      html  css  js  c++  java
  • [asp.net core]project.json(1)

    摘要

    前面介绍了使用vs2015新建asp.net core web的内容,这篇文章学习下project.json文件的内容。

    project.json

    原文:https://docs.microsoft.com/zh-cn/dotnet/articles/core/tools/project-json

    project.json文件用来定义asp.net core项目的元数据,编译信息和依赖。在本篇文章中,你可以看到你能在project.json中定义的所有属性列表。

    Note

    .NET Core核心工具将在未来的发布版本中从project.json迁移到MSBuild-based项目。建议仍旧在新的.NET Core项目中使用project.json,但在发布的时候,将会把project转换为MSBuild。

    For more information, see the Changes to project.json post on the .NET blog and the Using MSBuild to build .NET Core projects topic.

    project.json包括的内容如下

    {
        "name": String,
        "version": String,
        "description": String,
        "copyright": String,
        "title": String,
        "entryPoint": String,
        "testRunner": String,
        "authors": String[],
        "language": String,
        "embedInteropTypes": Boolean,
        "preprocess": String or String[],
        "shared": String or String[],
        "dependencies": Object {
            version: String,
            type: String,
            target: String,
            include: String,
            exclude: String,
            suppressParent: String
        },
        "tools": Object,
        "scripts": Object,
        "buildOptions": Object {
            "define": String[],
            "nowarn": String[],
            "additionalArguments": String[],
            "warningsAsErrors": Boolean,
            "allowUnsafe": Boolean,
            "emitEntryPoint": Boolean,
            "optimize": Boolean,
            "platform": String,
            "languageVersion": String,
            "keyFile": String,
            "delaySign": Boolean,
            "publicSign": Boolean,
            "debugType": String,
            "xmlDoc": Boolean,
            "preserveCompilationContext": Boolean,
            "outputName": String,
            "compilerName": String,
            "compile": Object {
                "include": String or String[],
                "exclude": String or String[],
                "includeFiles": String or String[],
                "excludeFiles": String or String[],
                "builtIns": Object,
                "mappings": Object
            },
            "embed": Object {
                "include": String or String[],
                "exclude": String or String[],
                "includeFiles": String or String[],
                "excludeFiles": String or String[],
                "builtIns": Object,
                "mappings": Object
            },
            "copyToOutput": Object {
                "include": String or String[],
                "exclude": String or String[],
                "includeFiles": String or String[],
                "excludeFiles": String or String[],
                "builtIns": Object,
                "mappings": Object
            }
        },
        "publishOptions": Object {
            "include": String or String[],
            "exclude": String or String[],
            "includeFiles": String or String[],
            "excludeFiles": String or String[],
            "builtIns": Object,
            "mappings": Object
        },
        "runtimeOptions": Object {
            "configProperties": Object {
                "System.GC.Server": Boolean,
                "System.GC.Concurrent": Boolean,
                "System.GC.RetainVM": Boolean,
                "System.Threading.ThreadPool.MinThreads": Integer,
                "System.Threading.ThreadPool.MaxThreads": Integer
            },
            "framework": Object {
                "name": String,
                "version": String,
            },
            "applyPatches": Boolean
        },
        "packOptions": Object {
            "summary": String,
            "tags": String[],
            "owners": String[],
            "releaseNotes": String,
            "iconUrl": String,
            "projectUrl": String,
            "licenseUrl": String,
            "requireLicenseAcceptance": Boolean,
            "repository": Object {
                "type": String,
                "url": String
            },
            "files": Object {
                "include": String or String[],
                "exclude": String or String[],
                "includeFiles": String or String[],
                "excludeFiles": String or String[],
                "builtIns": Object,
                "mappings": Object
            }
        },
        "analyzerOptions": Object {
            "languageId": String
        },
        "configurations": Object,
        "frameworks": Object {
            "dependencies": Object {
                version: String,
                type: String,
                target: String,
                include: String,
                exclude: String,
                suppressParent: String
            },        
            "frameworkAssemblies": Object,
            "wrappedProject": String,
            "bin": Object {
                assembly: String
            }
        },
        "runtimes": Object,
        "userSecretsId": String
    }

    name

    类型:String

    该项目的名称,用于程序集名称以及包的名称。如果未指定此属性,则使用顶级文件夹名称。

    例子:

    {
        "name": "MyLibrary"
    }

    description

    类型:String

    对项目的更详细的描述。用于程序集属性。

    例子:

    {
        "description": "This is my library and it's really great!"
    }

    类型:String

    项目版本信息,用于程序集属性。

    例子:

    {
        "copyright": "Fabrikam 2016"
    }

    类型:String

    项目别名(友好名称),可以包含在使用name属性时,不允许包含的空格和特殊字符。用于程序集属性。

    例子:

    {
        "title": "My Library"
    }

    类型:String

    项目的默认的main进入方法。

    例子:

    {
        "entryPoint": "ADifferentMethod"
    }

    类型:String

    测试程序的名称,例如NUnit或者xUnit,使用Project.json的该配置,标识该项目是一个测试项目。

    例子:

    {
        "testRunner": "NUnit"
    }

    类型:String[]

    项目所属人名称。

    例子:

    {
        "authors": ["Anne", "Bob"]
    }

    类型:String

    项目语言类型,对应于“中性语言”的编译参数。

    例子:

    {
        "language": "en-US"
    }

    类型:Boolean

    true:嵌入com组件,否则为false。

    例子:

    {
        "embedInteropTypes": true
    }

    类型:带有全局通配符的String或者String[]

    定义在预编译的时候应包含哪些文件。

    例子:

    {
        "preprocess": "compiler/preprocess/**/*.cs"
    }

    类型:带有全局通配符的String或者String[]

    定义哪些文件被共享,用于类库导出。

    例子:

    {
        "shared": "shared/**/*.cs"
    }

    类型:Object

    定义了项目依赖的包,包名称作为键名,值为版本信息。For more information, see the Dependency resolution article on the NuGet documentation site.

    例子:

      "dependencies": {
            "System.Reflection.Metadata": "1.3.0",
            "Microsoft.Extensions.JsonParser.Sources": {
              "type": "build",
              "version": "1.0.0-rc2-20221"
            },
            "Microsoft.Extensions.HashCodeCombiner.Sources": {
              "type": "build",
              "version": "1.1.0-alpha1-21456"
            },
            "Microsoft.Extensions.DependencyModel": "1.0.0-*"
        }

    version

    Type: String

    Specifies the version or version range of the dependency. Use the * wildcard to specify a floating dependency version.

    For example:

    "dependencies": { 
        "Newtonsoft.Json": { 
            "version": "9.0.1" 
        }
    }

    type

    Type: String

    Specifies the type of the dependency. It can be one of the following values: default, build or platform. The default value is default.

    build is known as a development dependency and is only used for build-time. It means that the package should not be published or added as a dependency to the output .nupkg file. It has the same effect of setting supressParent to all.

    platform references the shared SDK. For more information, see the section on "Deploying a framework-dependent deployment with third-party dependencies" on the .NET Core Application Deployment topic.

    For example:

    "dependencies": {
       "Microsoft.NETCore.App": {
         "type": "platform",
         "version": "1.0.0"
       }
     }

    target

    Type: String

    Restricts the dependency to match only a project or a package.

    include

    Type: String

    Includes parts of dependency packages. It can use one or more of the following flags: all, runtime, compile, build, contentFiles, native, analyzers, or none. Multiple flags are defined by a comma-delimited list. For more information, see the Managing dependency package assets specification on the NuGet repo.

    For example:

    {
      "dependencies": {
        "packageA": {
          "version": "1.0.0",
          "include": "runtime"
        }
      }
    }

    exclude

    Type: String

    Excludes parts of dependency packages. It can be one or more of the following flags: all, runtime, compile, build, contentFiles, native, analyzers, or none. Multiple flags are defined by a comma-delimited list. For more information, see the Managing dependency package assets specification on the NuGet repo.

    For example:

    {
      "dependencies": {
        "packageA": {
          "version": "1.0.0",
          "exclude": "contentFiles"
        }
      }
    }

    supressParent

    Type: String

    Defines additional excludes for consumers of the project. It can be one the following flags: all, runtime, compile, build, contentFiles, native, analyzers, or none. For more information, see the Managing dependency package assets specification on the NuGet repo.

    {
      "dependencies": {
        "packageA": {
          "version": "1.0.0",
          "suppressParent": "compile"
        }
      }
    }

    tools

    Type: Object

    An object that defines package dependencies that are used as tools for the current project, not as references. Packages defined here are available in scripts that run during the build process, but they are not accessible to the code in the project itself. Tools can for example include code generators or post-build tools that perform tasks related to packing.

    For example:

    {
        "tools": {
        "MyObfuscator": "1.2.4"
        }
    }

    scripts

    Type: Object

    An object that defines scripts run during the build process. Each key in this object identifies where in the build the script is run. Each value is either a string with the script to run or an array of strings containing scripts that will run in order. The supported events are:

      • precompile
      • postcompile
      • prepublish
      • postpublish

    For example:

    {
        "scripts": {
            "precompile": "generateCode.cmd",
            "postcompile": [ "obfuscate.cmd", "removeTempFiles.cmd" ]
        }
    }

    buildOptions

    Type: Object

    An object whose properties control various aspects of compilation. The valid properties are listed below. Can also be specified per target framework as described in the frameworks section.

    For example:

     "buildOptions": {
          "allowUnsafe": true,
          "emitEntryPoint": true
        }

    define

    Type: String[]

    A list of defines such as "DEBUG" or "TRACE" that can be used in conditional compilation in the code.

    For example:

    {
        "buildOptions": {
            "define": ["TEST", "OTHERCONDITION"]
        }

    nowarn

    Type: String[]

    A list of warnings to ignore.

    For example:

    {
        "buildOptions": {
            "nowarn": ["CS0168", "CS0219"]
        }
    }

    This ignores the warnings The variable 'var' is assigned but its value is never used and The variable 'var' is assigned but its value is never used

    additionalArguments

    Type: String[]

    A list of extra arguments that will be passed to the compiler.

    For example:

    {
        "buildOptions": {
            "additionalArguments": ["/parallel", "/nostdlib"]
        }
    }

    warningsAsErrors

    Type: Boolean

    true to treat warnings as errors; otherwise, false. The default is false.

    For example:

    {
        "buildOptions": {
            "warningsAsErrors": true
        }
    }

    allowUnsafe

    Type: Boolean

    true to allow unsafe code in this project; otherwise, false. The default is false.

    For example:

    {
        "buildOptions": {
            "allowUnsafe": true
        }
    }

    emitEntryPoint

    Type: Boolean

    true to create an executable; false to produce a library. The default is false.

    For example:

    {
        "buildOptions": {
            "emitEntryPoint": true
        }
    }

    optimize

    Type: Boolean

    true to enable the compiler to optimize the code in this project; otherwise, false. The default is false.

    For example:

    {
        "buildOptions": {
            "optimize": true
        }
    }

    platform

    Type: String

    The name of the target platform, such as AnyCpu, x86 or x64.

    For example:

    {
        "buildOptions": {
            "platform": "x64"
        }
    }

    languageVersion

    Type: String

    The version of the language used by the compiler: ISO-1, ISO-2, 3, 4, 5, 6, or Default.

    For example:

    {
        "buildOptions": {
            "languageVersion": "5"
        }
    }

    keyFile

    Type: String

    The path for the key file used for signing this assembly.

    For example:

    {
        "buildOptions": {
            "keyFile": "../keyfile.snk"
        }
    }

    delaySign

    Type: Boolean

    true to delay signing; otherwise, false. The default is false.

    For example:

    {
        "buildOptions": {
            "delaySign": true
        }
    }

     

  • 相关阅读:
    BroadcastReceiver ANR
    Interview
    转载——JavaScript学习笔记:取数组中最大值和最小值
    __proto__与prototype
    javascript中的map和reduce
    css浮动与清除浮动
    转载——自适应网页设计
    《DOM Scripting》学习笔记-——第九章 CSS-DOM
    《DOM Scripting》学习笔记-——第八章 充实文档的内容
    《DOM Scripting》学习笔记-——第七章 动态创建html内容
  • 原文地址:https://www.cnblogs.com/wolf-sun/p/5987252.html
Copyright © 2011-2022 走看看