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 以获取更多信息。

翻译状态:本文是 CLR package guidelines翻译。上次翻译日期:2020-05-03。如果英文版本有所更改,则您可以帮助同步翻译。
Arch 软件包准则

32-bitCLRCMake – Cross – DKMSEclipse – Electron – Font – Free Pascal – GNOME – GoHaskellJava – KDE – Kernel – Lisp – Meson – MinGW – Node.js – Nonfree – OCaml – Perl – PHPPython – R – Ruby – Rust – VCS – Web – Wine

打包注意

  • 始终将 mono 添加到 depends
  • 始终设置 archany。Mono 尚不支持编译(运行)64-bit 程序集。
  • 始终添加 !stripoptions
  • 如果程序包是一个库(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.