c# - 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 是?
解决方案
如果您在 Unity 中正确设置了您的 dll(即为相关平台添加/排除它们),Unity 应该只在构建中包含一个 Platform.dll。如果 Core.dll 不使用仅存在于 Platform.dll 子集中的任何接口,它应该可以正常工作。否则,在尝试为相应 Platform.dll 与 Core.dll 不兼容的任何平台构建 Unity 项目时,您将遇到异常。
推荐阅读
- c++ - 如何使用初始化列表在构造函数中进行分配
- javascript - 我如何使形状在另一个形状 p5.js 上相对移动
- regex - nginx.ingress.kubernetes.io/rewrite-target 无法正则表达式捕获 url 参数
- javascript - pulumi 卡在 gcp.organizations.getIAMPolicy
- php - 为什么 fopen() 中的某些访问模式会在我的新服务器上引发 PHP 警告?
- ruby - Microsoft Teams 在文本中转义下划线
- graphics - 我是否必须进行 Z 排序?
- reactjs - 使用多个可创建的 reactjs 材料 ui 添加自动完成功能
- arrays - 将字符串转换为数组 perl
- r - 下一个行为如何发生(Hmisc 在哪里/何时导出`[`)以及在哪里解决它?