首页 > 解决方案 > C# DLL 的平台相关编译

问题描述

我正在尝试设置一堆托管 C# dll 以在 Unity3D 中工作,但我正在努力完成这项工作:

想象一下,为平台 A 托管了 C# Platform.dll,为平台 B 托管了 Platform.dll。

现在我想构建一个 C# 托管 dll,比如 Core.dll,它依赖于 Platform.dll,但它本身没有任何平台相关的代码。我认为应该可以构建一个托管的 C# dll,它在运行时查找正确的 Platform.dll(假设只启用了一个 Platform.dll)。

这可能吗?如果可以,怎么办?或者我是否必须坚持使用不同的 Core.dll,这些 Core.dll 又依赖于平台,因为底层的 Platform.dll 是?

标签: c#unity3ddllplatform

解决方案


如果您在 Unity 中正确设置了您的 dll(即为相关平台添加/排除它们),Unity 应该只在构建中包含一个 Platform.dll。如果 Core.dll 不使用仅存在于 Platform.dll 子集中的任何接口,它应该可以正常工作。否则,在尝试为相应 Platform.dll 与 Core.dll 不兼容的任何平台构建 Unity 项目时,您将遇到异常。


推荐阅读