控制文件是一个无扩展名的文本文件,包含描述程序包属性和关系的元数据。例如,名称、版本、类型、依赖关系。文件程序包和WinInst程序包都需要一个控制文件。Package Manager根据控制文件中的元数据生成程序包。

属性名称 必需 类型 默认 说明 范例
Architecture 字符串 N/A 表示程序包支持的操作系统架构。
预期值:
  • windows_x64(仅可在64位Windows上安装)
  • windows_all(不支持32位操作系统后,该选项将停用)
Architecture: windows_all
备注 每个程序包只能指定一种架构。
Conflicts 字符串关系数组 NULL 声明一个二进制程序包和另一个程序包之间有冲突。

Package Manager不安装产生冲突的程序包。

对于XB-Plugin设置为eula的程序包,可通过将该值设置为ni-package-manager来防止安装EULA程序包。

有关示例,请参考字符串关系数组部分。
Depends 字符串关系数组 NULL 声明一个绝对依赖关系。
  • windows_x64程序包只能依赖于windows_x64windows_all程序包。
  • windows_all程序包只能依赖于windows_all程序包。
  • 特定的程序包system-windows-x64可作为64位依赖项的占位符。
有关示例,请参考字符串关系数组部分。
Description 多行 N/A 提供二进制程序包的说明。

由两部分组成:单行简介和多行的长描述。

NI建议在简介和长描述之间使用两个空白字符以更易读。

您可以指定本地化文本。请参阅本地化属性

有关示例,请参考多行属性部分。
Enhances 字符串关系数组 NULL 声明一个程序包增强了另一个程序包的功能。

仅在XB-UserVisibleyes的程序包中使用该属性。

有关示例,请参考字符串关系数组部分。
Homepage 字符串 NULL 提供程序包详细信息的URL。 Homepage: http://www.ni.com
Installed-Size 长整型 0 提供安装程序包所需磁盘空间总量的估计值。

预期值:安装大小的整数值(以字节为单位)除以1024并向上取整。

Installed-Size: 25485141
Maintainer 字符串 N/A 程序包维护者的姓名和电子邮箱。

预期值:维护者的姓名、电子邮箱。

Maintainer: National Instruments <support@ni.com>
Package 字符串 N/A 为程序包指定一个唯一的标识。
程序包的名称必须是唯一的,易于在命令行中使用的,需满足下列要求:
  • 只能包含小写字母(a-z)、数字(0-9)、加号(+)、减号(-)和句号(.)
  • 必须以字母、数字开头
  • 不允许包含大写字母
  • 必须至少包含两个字符
  • 最长不得超过58个字符
预期值:
  • 名称必须匹配正则表达式^[a-z0-9][a-z0-9.+-]{2,}$
  • 建议程序包以公司名称开头,然后使用程序包的描述性名称。例如,ni-testpackage。

良好的范例:

  • Package: ni-labview-2015
  • Package: ni-daqmx
  • Package: ni-daqmx-labview-2015-support

语法不正确:

  • Package: LabVIEW_2015
  • Package: NationalInstrumentsGPIB
  • Package: labview
Provides 字符串关系数组 NULL 声明该程序包满足另一个程序包的绝对依赖关系。 有关示例,请参考字符串关系数组部分。
Recommends 字符串关系数组 NULL 声明一个强依赖关系,但非绝对依赖关系。

列出在大多数情况下都会一并安装的程序包。

仅推荐XB-UserVisibleyes的程序包。

有关示例,请参考字符串关系数组部分。
Replaces 字符串关系数组 NULL 声明该程序包会替换其他程序包。

ConflictsReplaces配合使用。

有关示例,请参考字符串关系数组部分。
Section 字符串 NULL 指定程序包的类别。
预期值:
  • Programming Environments
  • Application Software
  • Add-Ons
  • Drivers
  • Runtime
  • Utilities
  • Documentation
  • Infrastructure

对于XB-Plugin设置为eula的程序包,必须将该值设置为Infrastructure。有关创建EULA程序包的详细信息,请参阅“组装EULA程序包”。

Section: Application Software
Suggests 字符串关系数组 NULL 声明一个程序包可能对一个或多个程序包有用。

告知Package Manager和用户列出的程序包与该程序包有关,但是不是必须的。

仅建议XB-UserVisibleyes的程序包。

有关示例,请参考字符串关系数组部分。
Supplements 字符串关系数组 NULL 声明一个程序包补充了另一个程序包的功能。

仅在XB-UserVisibleyes的程序包中使用该属性。

有关示例,请参考字符串关系数组部分。
Version 字符串 N/A 指定程序包的版本号。

使用debian格式。详细信息请访问https://www.debian.org。

Version: 17.1.0.1
XB-DisplayName 字符串 NULL 简洁明了的程序包名称。

您可以指定本地化文本。请参阅“本地化属性”。

XB-DisplayName: NI LabVIEW 2017
XB-DisplayVersion 字符串 NULL 简洁明了的显示版本。 XB-DisplayVersion: 15.0.0
XB-Eula 字符串关系数组 NULL 声明程序包所需的EULA包。 XB-Eula: eula-mycompany, eula-ni-standard
XB-EulaTitle 字符串 NULL 指定EULA程序包的显示标题。仅在XB-Plugin设置为eula的程序包中使用此属性 XB-EulaTitle: My Software Name
XB-MessageCondition-#

例如:

XB-MessageCondition-1XB-MessageCondition-2,等等。

字符串 N/A 指定相应的消息何时在Package Manager里显示的条件。

只接受MSI条件,并且应该包含在<msi>...</msi>标签内。除非包含在CDATA中,否则标签内的尖括号(<, >)必须写为'&lt'、'&gt'。

XB-MessageCondition-1: <msi>VISA32COMPANYNAME ~&lt;&gt; "National Instruments"</msi>
XB-MessageCondition-2: <msi><![CDATA[VISA32COMPANYNAME ~<> "National Instruments"]]></msi>
XB-MessageText-#例如:

XB-MessageText-1XB-MessageText-2,等等。

多行 N/A Package Manager在安装程序包之前显示的重要消息。

包含两部分,头信息和主体。

可使用下列MessageCondition属性,指定显示该消息的条件。如果未指定条件,安装程序包时将始终显示该消息。

NI建议为消息主体的每一行创建预设格式的文本,在行首留两个空白字符。

您可以指定本地化文本。请参阅“本地化属性”。

XB-MessageText-1: This is my message header

This is my message body.

There are multiple lines.

XB-OsRequires 字符串 N/A 声明程序包需要的操作系统版本。

如果不指定XB-OsRequires,则Package Manager支持的所有操作系统均可。

使用Architecture属性定义操作系统比特属性。

如果操作系统不满足程序包XB-OsRequires属性的要求,Package Manager GUI将不会显示相关的程序包。

如果程序包的依赖项具有更严格的XB-OsRequires,则该程序包将继承相对严格的操作系统要求。

有关示例,请参考操作系统要求部分。
XB-Plugin 字符串 NULL 用来安装程序包的代理。
预期值:
  • eula
  • file
  • wininst
  • relative-file
XB-Plugin: file
XB-ReleaseNotes 多行 NULL 程序包的发行说明。

您可以指定本地化文本。请参阅本地化属性

有关示例,请参考多行属性部分。
XB-StoreProduct 布尔 no 指定程序包是不是Package Manager中的产品。

您必须将值设置为yes,当选中仅产品时,程序包才能显示在已安装程序包选项卡中。

预期值:
  • no
  • yes
XB-StoreProduct: no
XB-UserVisible 布尔 no 指定Package Manager是否显示程序包。
预期值:
  • no
  • yes

对于XB-Plugin设置为eula的程序包,该值必须设置为no。有关创建EULA程序包的详细信息,请参阅“组装EULA程序包”。

XB-UserVisible: no
XB-VisibleForRuntimeDeployment 布尔 no 指定添加了依赖项后,NI Package Builder是否默认显示程序包。
预期值:
  • no
  • yes
XB-VisibleForRuntime: yes

字符串关系数组

可使用一个包含程序包名称列表的文件来指定文件属性。

根据下列语法规则写下属性值:

  • 使用逗号分隔程序包名称。
  • 使用竖直分隔符分隔任何依赖关系程序包的名称。表示列出的程序包都满足依赖关系。
  • 在程序包后的括号内添加版本名称,表示程序包的版本要求。可在字符串关系数组的所有字段(Provides除外)中,将程序包的适用性缩小为若干个版本。
  • 在版本号之前使用下列符号,表示版本和程序包之间的关系。在版本说明中可使用空格。
符号 关系
<< 严格更低版本
<= 更低或等于
= 完全等于
>= 更高或等于
>> 严格更高版本
!= 不包括

在下面的例子中,Depends声明了对package01,2.2.1或更高版本的依赖关系,还声明了package03是满足package02依赖关系的替代程序包。

Depends: package01 (>= 2.2.1), package02 | package03

多行属性

多行属性的第一行是属性的简要说明,其余的行是属性的更详细的说明信息。

多行属性的第一行先列出属性的名称,而后是一个简要说明。为属性提供一个简短的描述或标题。XB-ReleaseNotes属性不使用单行说明。

详细描述为属性的详细信息。属性详细描述的格式如下:

  • 创建一个段落,首行空一格。显示文本时,将会移除前面的空白字符,并分行显示。一个段落必须至少包含至少一个非空白字符。
  • 在首行空两格,表示在文本中保留空白和换行符。如果显示区域不能水平滚动,并且某一行太长,则显示程序将在必要时创建换行符。
  • 一个空格,后接一个半角逗号,可以创建一个空行。

下列文本演示了如何按照多行属性的格式规则为Description元素输入文本:

      Description: 多行属性内容的范例
 该行行首的空格创建一个段落。 
 .
  这两行行首留了两个空格,行内的
  空白和换行符得以保留。

操作系统要求

XB-OsRequires版本包含3个整数字段,表示Windows操作系统的版本。 前两个字段对应于Windows操作系统的版本号,由Microsoft在操作系统版本中指定。第三个字段仅适用于Windows 10操作系统,由Microsoft在Windows 10发布信息中指定。

根据下列语法规则格式化书写属性字段:

  • 使用句点分隔字段。
  • 使用逗号分隔多个需求。
  • 使用竖线指定其他需求。竖线的优先级高于逗号。
  • 该属性支持下列操作符:
    操作符 关系
    <<小于
    <=小于等于
    =等于
    >=大于等于
    >>大于
    !=排除
下表显示了一个使用XB-OsRequires的范例:
范例需求
XB-OsRequires: >=6.3
需要Windows 8.1或更高版本
XB-OsRequires: >=10.0, !=10.0.18363
需要Windows 10或更高版本,Windows 10 version 1909除外
XB-OsRequires: >=6.3, <10 | >=10.0.18363
需要Windows 8.1或更高版本且早于Windows 10的操作系统,或Windows 10 version 1909以及更高版本的操作系统

本地化属性

如果包含附加了特定语言后缀的属性版本,说明、显示名称、发行说明和消息文本将在Package Manager用户界面中显示为本地化版本。

Package Manager GUI显示Description、XB-DisplayName、XB-ReleaseNotes和XB-MessageText的本地化文本(如果包含了这些属性的本地化版本)。这些属性的本地化版本在属性名称后附加一个连字符和一个特定语言的后缀。如果没有与Package Manager GUI语言匹配的特定语言属性,则使用未本地化的属性文本。

例如,LabVIEW控件文件可能包含下列XB-DisplayName属性:
DisplayName: LabVIEW (64-bit) English
DisplayName-de: LabVIEW (64 Bit) – Englisch
DisplayName-es: LabVIEW (64 bits) – Español
DisplayName-fr: LabVIEW (64 bits) – Anglais
DisplayName-it: LabVIEW (64 bit) – Italiano
DisplayName-ja: LabVIEW (64ビット) 英語版
DisplayName-ko: LabVIEW (64비트) 영어 버전
DisplayName-zh-CN: LabVIEW(64位)英语版