主要内容

本页面提供的是上一版软件的文档。当前版本中已删除对应的英文页面。

从命令行打包 .NET 程序集

您可以使用以下任一命令在 MATLAB® 提示符或系统提示符下打包 .NET 程序集。

  • deploytool 调用库编译器应用程序来创建编译器工程。

  • mcc 调用 MATLAB Compiler™ 在命令提示符下创建可部署的应用程序。

使用 deploytool 执行编译器工程

deploytool 命令有两个标志,可以调用其中一个编译器 App 来打包已经存在的工程,而无需打开窗口。

  • -build project_name - 调用正确的编译器应用程序来构建工程但不生成安装程序。

  • -package project_name - 调用正确的编译器应用程序来构建工程并生成安装程序。

例如,deploytool -package magicsquare 生成 magicsquare 工程定义的二进制文件,并将其打包成可分发给他人的安装程序。

使用 mcc 创建 .NET 程序集

mcc 命令调用 MATLABCompiler 在命令提示符下创建 .NET 程序集,并在打包应用程序时提供细级别的控制。它不会将结果打包在安装程序中。

以下命令定义了完整的 mcc 命令语法以及用于创建 .NET 程序集的所有必需和可选参量。括号表示语法的可选部分。

mcc -W 'dotnet:component_name,class_name, 0.0|framework_version, Private|Encryption_Key_Path,local|remote' file1 [file2...fileN][class{class_name:file1 [,file2,...,fileN]},... [-d output_dir_path] -T link:lib

.NET 捆绑包

您可以简化用于创建 .NET 程序集的命令行。为此,请使用名为 dotnet 的捆绑包。使用此捆绑包仍然需要您传入 -W 参量文本字符串的五个部分(包括 local|remote);但是,您不必指定 -T 选项。

以下示例创建一个名为 mycomponent 的 .NET 程序集,其中包含一个名为 myclass 的 .NET 类以及方法 foobar

mcc -B 'dotnet:mycomponent,myclass,2.0,
    encryption_keyfile_path,local'
    foo.m bar.m

在此示例中,编译器使用 .NET Framework 2.0 版本将组件打包成共享程序集,并使用 encryption_keyfile_path 中指定的密钥文件对共享组件进行签名。

创建 .NET 命名空间

下面的示例从两个 MATLAB 文件 foo.mbar.m 创建一个 .NET 程序集。

mcc -B 
'dotnet:mycompany.mygroup.mycomponent,myclass,0.0,Private,local'
 foo.m bar.m

该示例创建一个名为 mycomponent 的 .NET 程序集,该程序集具有以下命名空间:mycompany.mygroup。该组件包含一个 .NET 类 myclass,其中包含方法 foobar

要使用 myclass,请在代码中放置以下语句:

using mycompany.mygroup;

向程序集添加多个类

下面的示例创建一个包含多个类的 .NET 程序集。此示例使用 mcc 命令的可选 class{...} 参量。

mcc -B 'dotnet:mycompany.mycomponent,myclass,2.0,Private,local' foo.m bar.m 
class{myclass2:foo2.m,bar2.m}

该示例创建一个名为 mycomponent 的 .NET 程序集,其中包含两个类:

  • myclass 有方法 foobar

  • myclass2 有方法 foo2bar2

请参阅 NET.isNETSupported 来检查是否支持 Microsoft® .NET 框架的版本。

编译器应用程序和命令行之间的差异

您可以使用编译器 App、compiler.build 函数或 mcc 命令行界面执行相同的功能。编译器 App 中使用的交互式菜单和对话框构建了根据您的规范自定义的 mcc 命令。因此,您的 MATLAB 代码的处理方式与使用 mcc 打包代码的方式相同。

如果您知道要部署的应用程序类型的命令并且不需要安装程序,则执行 compiler.buildmcc 比执行编译器应用程序工作流更快。

编译器 App 的优点包括:

  • 您可以使用单个直观的界面执行相关的部署任务。

  • 您可以在方便的工程文件中维护相关信息。

  • 您的工程状态在会话之间保持不变。

  • 您可以从预填充的菜单中加载以前存储的编译器工程。

  • 您可以打包应用程序以便分发。

另请参阅

| deploytool

主题