Version: 6000.3
语言: 中文
装配定义参考属性参考
托管代码剥离

装配定义文件格式参考

程序集定义和程序集定义参考资产是 JSON 文件。您可以使用 Unity 编辑器中的检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表
窗口,但您也可以使用外部工具修改 JSON 内容。

程序集定义 JSON

程序集定义是一个具有以下字段的 JSON 对象:

allowUnsafeCode 布尔值

自选。默认为 false。请参阅允许“不安全”代码

"allowUnsafeCode" : true

autoReferenced 布尔值

自选。默认为 true。请参见自动引用

"autoReferenced": false

defineConstraints 字符串[]

自选。用作约束的符号。可以为空。请参见定义约束

"defineConstraints": [
        "UNITY_2019",
        "UNITY_INCLUDE_TESTS"
    ]

excludePlatforms 字符串[]

自选。要排除的平台名称字符串或空数组。如果 includePlatforms 包含值,则 excludePlatforms 数组必须为空。你可以使用 CompilationPipeline.GetAssemblyDefinitionPlatforms 函数检索平台名称字符串(调用此函数时,必须为当前编辑器安装对平台的支持。请参阅平台

"includePlatforms": [],
"excludePlatforms": [
        "iOS",
        "macOSStandalone",
        "tvOS"
]

includePlatforms 字符串[]

自选。要包含的平台名称字符串或空数组。如果 excludePlatforms 包含值,则 includePlatforms 数组必须为空。你可以使用 CompilationPipeline.GetAssemblyDefinitionPlatforms 函数检索平台名称字符串(调用此函数时,必须为当前编辑器安装对平台的支持。请参阅平台

"includePlatforms": [
        "Android",
        "LinuxStandalone64",
        "WebGL"
],
"excludePlatforms": []

name 字符串

必填。任何合法的程序集名称

"name" : "MyAssemblyName" 

noEngineReferences 布尔值

自选。默认为 false。请参阅无引擎参考

"noEngineReferences": false

可选UnityReferences 字符串[]

自选。在早期版本的 Unity 中,此字段序列化了 Unity 引用:测试程序集选项,用于将程序集指定为测试程序集。从 Unity 2019.3 开始,不再显示该选项。该字段仍受支持,但如果在较新版本的 Unity 编辑器中重新序列化资产,则该字段将替换为等效的程序集引用。

有关测试程序集的更多信息,请参阅创建测试程序集

"optionalUnityReferences": [
    "TestAssemblies"
  ]

overrideReferences 布尔值

自选。如果 precompiledReferences 包含值,则设置为 true。默认为 false。

请参阅[覆盖引用]。

"overrideReferences": true

precompiledReferences 字符串[]

自选。引用的 DLL 库的文件名,包括扩展名,但不包括其他路径元素。可以为空。除非将 overrideReferences 设置为 true,否则将忽略此数组。

请参见装配参考

"overrideReferences": true,
"precompiledReferences": [
        "Newtonsoft.Json.dll",
        "nunit.framework.dll"
]

引用字符串[]

自选。 对使用装配定义资产创建的其他装配的引用。您可以使用装配定义资产文件的 GUID 或装配的名称(由装配定义的名称字段定义)。必须对列表中的所有引用使用相同的形式。可以为空。

可以使用 AssetDatabase.AssetPathToGUID 函数检索资产的 GUID。(GUID 也是与每个资产关联的元数据的一部分。

请注意,编辑器在程序集定义检查器中显示“使用 GUID”选项。此选项不会在关联的 JSON 文件中序列化。相反,选择是从文件中找到的引用形式推断出来的。

请参阅引用另一个装配

使用 GUID:

"references": [
        "GUID:17b36165d09634a48bf5a0e4bb27f4bd",
        "GUID:b470eee7144904e59a1064b70fa1b086",
        "GUID:2bafac87e7f4b9b418d9448d219b01ab",
        "GUID:27619889b8ba8c24980f49ee34dbb44a",
        "GUID:0acc523941302664db1f4e527237feb3"
]

使用程序集名称:

"references": [
        "Unity.CollabProxy.Editor",
        "AssemblyB",
        "UnityEngine.UI",
        "UnityEngine.TestRunner",
        "UnityEditor.TestRunner"
]

version定义对象[]

自选。 包含每个版本定义的对象。此对象具有三个字段:

  • name:string – 资源的名称
  • expression:string – 定义资源版本或版本范围的表达式
  • define:string – 要定义的符号

请参阅版本定义

"versionDefines": [
    {
        "name": "com.unity.ide.vscode",
        "expression": "[1.7,2.4.1]",
        "define": "MY_SYMBOL"
    },
    {
        "name": "com.unity.test-framework",
        "expression": "[2.7.2-preview.8]",
        "define": "TESTS"
    }
]

程序集定义 JSON 字符串示例

使用程序集名称引用其他程序集定义和 includePlatforms

{
    "name": "BeeAssembly",
    "references": [
        "Unity.CollabProxy.Editor",
        "AssemblyB",
        "UnityEngine.UI",
        "UnityEngine.TestRunner",
        "UnityEditor.TestRunner"
    ],
    "includePlatforms": [
        "Android",
        "LinuxStandalone64",
        "WebGL"
    ],
    "excludePlatforms": [],
    "overrideReferences": true,
    "precompiledReferences": [
        "Newtonsoft.Json.dll",
        "nunit.framework.dll"
    ],
    "autoReferenced": false,
    "defineConstraints": [
        "UNITY_2019",
        "UNITY_INCLUDE_TESTS"
    ],
    "versionDefines": [
        {
            "name": "com.unity.ide.vscode",
            "expression": "[1.7,2.4.1]",
            "define": "MY_SYMBOL"
        },
        {
            "name": "com.unity.test-framework",
            "expression": "[2.7.2-preview.8]",
            "define": "TESTS"
        }
    ],
    "noEngineReferences": false
}

使用 GUIDS 引用其他程序集定义和 excludePlatforms

{
    "name": "BeeAssembly",
    "references": [
        "GUID:17b36165d09634a48bf5a0e4bb27f4bd",
        "GUID:b470eee7144904e59a1064b70fa1b086",
        "GUID:2bafac87e7f4b9b418d9448d219b01ab",
        "GUID:27619889b8ba8c24980f49ee34dbb44a",
        "GUID:0acc523941302664db1f4e527237feb3"
    ],
    "includePlatforms": [],
    "excludePlatforms": [
        "iOS",
        "macOSStandalone",
        "tvOS"
    ],
    "allowUnsafeCode": false,
    "overrideReferences": true,
    "precompiledReferences": [
        "Newtonsoft.Json.dll",
        "nunit.framework.dll"
    ],
    "autoReferenced": false,
    "defineConstraints": [
        "UNITY_2019",
        "UNITY_INCLUDE_TESTS"
    ],
    "versionDefines": [
        {
            "name": "com.unity.ide.vscode",
            "expression": "[1.7,2.4.1]",
            "define": "MY_SYMBOL"
        },
        {
            "name": "com.unity.test-framework",
            "expression": "[2.7.2-preview.8]",
            "define": "TESTS"
        }
    ],
    "noEngineReferences": false
}

程序集定义参考 JSON

程序集定义引用是一个具有以下字段的 JSON 对象:

引用字符串

必填。要引用的装配定义。请参阅装配定义参考

可以使用程序集的名称或资产的 GUID 来引用程序集定义资产。可以使用 AssetDatabase.AssetPathToGUID 函数检索资产的 GUID。(GUID 也是与每个资产关联的元数据的一部分。

使用程序集名称:

{
    "reference": "AssemblyA"
}

使用程序集定义资产 GUID

{
    "reference": "GUID:f4de40948f4904ecb94b59dd38aab8a1"
}

请参阅创建装配定义参考资源

装配定义参考属性参考
托管代码剥离