CLR package guidelines (简体中文)
本文档定义了在 Arch Linux 下打包 Common Language Runtime (.NET)项目的标准。当前,只有 Mono 能够为多个系统提供可用的,高效的 CLR runtime,并且该标准将反映其用法。请注意,许多 CLR 程序是在考虑到 Microsoft .NET 的情况下开发的,因此,由于 P/Invoke 调用和 Microsoft 数字版权管理(DRM)API 等 .NET 专有的因素,它们可能在 Mono 下运行,也可能无法在 Mono 下运行。因此不会为 Arch Linux 提供可用的软件包。但是,如果与 1.5.6 版(?)或更高版本的 Wine 结合使用,则您的程序包可能有机会在其下运行。如果是这种情况,请参阅 Wine PKGBUILD Guidelines 以获取更多信息。
打包注意
- 始终将 mono 添加到
depends - 始终设置
arch为any。Mono 尚不支持编译(运行)64-bit 程序集。 - 始终添加
!strip到options - 如果程序包是一个库(DLL),则要将该程序包用作依赖项,请考虑将其安装到 Mono 的全局程序集缓存(GAC)中。
- 如果程序集是预编译的,并且带有程序调试数据库文件(Foo.dll.pdb),请考虑将其转换为:{ic|pdb2mdb Foo.dll}}
- 如果要执行该程序包(EXE),请确保安装到
/usr/bin,使用 shell 脚本以运行它,类似于以下程序:
#!/bin/sh mono foo.exe "$@"
签名的程序集
如果要将软件包安装到 GAC 中,请确保它具有签名的密钥文件。如果没有,您可以生成一个这样的:。随后,嵌入密钥文件到组件的最简单方法是拆卸它,是这样的:。然后,像这样重新组装它:ilasm /dll /key:Foo.snk Foo.il
PKGBUILD 示例
以下示例将尝试涵盖一些最常见的约定和构建系统。
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.