このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
compiler.build.dotNETAssembly
構文
説明
compiler.build.dotNETAssembly(
は、名前と値の引数を 1 つ以上使用して追加オプションを指定して .NET アセンブリを作成します。オプションには、クラス名、出力ディレクトリ、含める追加ファイルなどがあります。Files
,Name,Value
)
compiler.build.dotNETAssembly(
は、ClassMap
)container.Map
オブジェクト ClassMap
を使用してクラス マッピングを指定して .NET アセンブリを作成します。
compiler.build.dotNETAssembly(
は、名前と値の引数を 1 つ以上使用して指定した追加オプションと ClassMap
,Name,Value
)ClassMap
を使用して .NET アセンブリを作成します。オプションには、アセンブリ名、出力ディレクトリ、含める追加ファイルなどがあります。
compiler.build.dotNETAssembly(
は、opts
)compiler.build.DotNetAssemblyOptions
オブジェクト opts
を使用してオプションを指定した .NET アセンブリを作成します。名前と値の引数を使用して他のオプションを指定することはできません。
例
魔方陣を生成する関数ファイルを使用して、Windows® システムで .NET アセンブリを作成します。
MATLAB で、.NET アセンブリとしてデプロイする MATLAB 関数を見つけます。この例では、
にあるファイル matlabroot
\extern\examples\compilermagicsquare.m
を使用します。
appFile = which('magicsquare.m');
compiler.build.dotNETAssembly
コマンドを使用して、.NET アセンブリをビルドします。
compiler.build.dotNETAssembly(appFile);
ビルド関数により、現在の作業ディレクトリの magicsquaredotNETAssembly
という名前のフォルダー内に以下のファイルが生成されます。
GettingStarted.html
— アセンブリの統合に関する情報が含まれる HTML ファイル。includedSupportPackages.txt
— アセンブリに含まれるすべてのサポート ファイルをリストしたテキスト ファイル。magicsquare.dll
—mwArray
API を使用してアクセス可能なダイナミックリンク ライブラリ ファイル。magicsquare.xml
—mwArray
アセンブリのドキュメンテーションが含まれる XML ファイル。magicsquare_overview.html
— コンポーネントにアクセスするための要件や、mwArray
クラス階層を使用して引数を生成するための要件が含まれる HTML ファイル。magicsquareNative.dll
— ネイティブ API を使用してアクセス可能なダイナミックリンク ライブラリ ファイル。magicsquareNative.xml
— ネイティブ アセンブリのドキュメンテーションが含まれる XML ファイル。magicsquareVersion.cs
— バージョン情報が含まれる C# ファイル。mccExcludedFiles.log
— アプリケーションに含まれていないすべてのツールボックス関数のリストが含まれるログ ファイル。サポートされていない関数の詳細については、MATLAB Compiler の制限を参照してください。readme.txt
— パッケージ化およびインターフェイスの情報が含まれるテキスト ファイル。requiredMCRProducts.txt
— MATLAB Runtime がアプリケーションを実行するために必要な製品の製品 ID が含まれるテキスト ファイル。unresolvedSymbols.txt
— 未解決のシンボルに関する情報が含まれるテキスト ファイル。
Windows システム上で .NET アセンブリを作成し、名前と値の引数を使用してカスタマイズします。
この例では、
にあるファイル matlabroot
\extern\examples\compilerflames.m
と flames.mat
を使用します。
appFile = which('flames.m'); MATFile = which('flames.mat');
compiler.build.dotNETAssembly
コマンドを使用して、.NET アセンブリをビルドします。名前と値の引数を使用してアセンブリ名とバージョンを指定し、MAT ファイルを追加して、詳細な出力を有効にします。
compiler.build.dotNETAssembly(appFile,'AssemblyName','FlamesComp', ... 'AssemblyVersion','2.0', ... 'AdditionalFiles',MATFile, ... 'Verbose','on');
クラス マップおよび複数の関数ファイルを使用して、Windows システムで .NET アセンブリを作成します。
キーがクラス名で、値が関数ファイルの場所である containers.Map
オブジェクトを作成します。
cmap = containers.Map; cmap('Class1') = {'exampleFcn1.m','exampleFcn2.m'}; cmap('Class2') = {'exampleFcn3.m','exampleFcn4.m'};
compiler.build.dotNETAssembly
コマンドを使用して、.NET アセンブリをビルドします。
compiler.build.dotNETAssembly(cmap);
あるいは、.NET アセンブリのビルド時に名前と値の引数を使用して追加オプションを指定することもできます。
compiler.build.dotNETAssembly(cmap, ... 'AssemblyName','MyExampleComp', ... 'AssemblyVersion','2.0', ... 'Verbose','on');
compiler.build.DotNETAssemblyOptions
オブジェクトを使用して、Windows システムで複数の .NET アセンブリを作成します。
この例では、
にあるファイル matlabroot
\extern\examples\compilermagicsquare.m
を使用します。
appFile = which('magicsquare.m');
appFile
を使用して DotNETAssemblyOptions
オブジェクトを作成します。名前と値の引数を使用して共通の出力ディレクトリを指定し、アセンブリ アーカイブを別途生成して、詳細な出力を有効にします。
opts = compiler.build.DotNETAssemblyOptions(appFile, ... 'OutputDir','D:\Documents\MATLAB\work\dotNETBatch', ... 'EmbedArchive','off', ... 'Verbose','on')
opts =
DotNETAssemblyOptions with properties:
AssemblyName: 'example.magicsquare'
ClassMap: [1×1 containers.Map]
DebugBuild: off
EnableRemoting: off
FrameworkVersion: '4.0'
SampleGenerationFiles: {}
StrongNameKeyFile: ''
AssemblyVersion: '1.0.0.0'
EmbedArchive: off
Interface: 'mwarray'
AdditionalFiles: {}
AutoDetectDataFiles: on
ExternalEncryptionKey: [0×0 struct]
ObfuscateArchive: off
SecretsManifest: ''
SupportPackages: {'autodetect'}
Verbose: on
OutputDir: 'D:\Documents\MATLAB\work\dotNETBatch'
Class Map Information
magicsquareClass: {'C:\Program Files\MATLAB\R2025a\extern\examples\compiler\magicsquare.m'}
DotNETAssemblyOptions
オブジェクトを使用して .NET アセンブリをビルドします。
compiler.build.dotNETAssembly(opts);
同じオプションをもつ関数ファイル hello.m
を使用してコンパイルするには、ビルド関数を再度実行する前に、ドット表記を使用して既存の COMComponentOptions
オブジェクトの ClassMap
を変更します。
remove(opts.ClassMap, keys(opts.ClassMap)); opts.ClassMap('helloClass') = which('hello.m'); compiler.build.dotNETAssembly(opts);
ClassMap
引数を変更して再コンパイルすることにより、同じオプション オブジェクトを使用して複数のコンポーネントをコンパイルできます。
.NET アセンブリを Windows システムで作成し、ビルド タイプ、生成ファイル、含まれるサポート パッケージ、およびビルド オプションに関する情報を compiler.build.Results
オブジェクトに保存します。
ファイル magicsquare.m
を使用してコンパイルします。
results = compiler.build.dotNETAssembly('magicsquare.m')
results = Results with properties: BuildType: 'dotNETAssembly' Files: {4×1 cell} IncludedSupportPackages: {} Options: [1×1 compiler.build.DotNETAssemblyOptions] RuntimeDependencies: [1×1 compiler.runtime.Dependencies]
Files
プロパティには、以下のコンパイル済みファイルへのパスが格納されます。
magicsquare.dll
magicsquareNative.dll
magicsquare_overview.dll
GettingStarted.html
入力引数
MATLAB 関数を実装するファイル。文字ベクトル、string スカラー、string 配列、または文字ベクトルの cell 配列として指定します。ファイル パスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。ファイルの拡張子は .m
、.p
、.mlx
、.mexa64
のいずれかである必要があります。
例: ["myfunc1.m","myfunc2.m"]
データ型: char
| string
| cell
クラス マップ。containers.Map
オブジェクトとして指定します。マッピングのキーはクラス名であり、各値は対応するクラスにマッピングされるファイルのセットです。ファイルの拡張子は .m
、.p
、.mlx
、.mexa64
のいずれかである必要があります。
例: cmap
.NET アセンブリのビルド オプション。compiler.build.DotNETAssemblyOptions
オブジェクトとして指定します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: 'Verbose','on'
.NET アセンブリに含める追加のファイルとフォルダー。文字ベクトル、string スカラー、string 配列、または文字ベクトルの cell 配列として指定します。パスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。
例: 'AdditionalFiles',["myvars.mat","data.txt"]
データ型: char
| string
| cell
.NET アセンブリの名前。文字ベクトルまたは string スカラーとして指定します。'AssemblyName'
を名前空間として指定します。これは、companyname.groupname.component
のようにピリオドで区切られたリストです。生成されたライブラリの名前は、ピリオドで区切られたリストの最後のエントリに設定されます。名前は文字で始まり、英字とピリオドのみが含まれる必要があります。
例: 'AssemblyName','mathworks.dotnet.mymagic'
データ型: char
| string
アセンブリのバージョン。文字ベクトルまたは string スカラーとして指定します。このオプションは MWArray API でのみ使用します。
MATLAB Compiler SDK™ を使用したバージョン管理の詳細については、Versioningを参照してください。
例: 'AssemblyVersion','4.0'
データ型: char
| string
データ ファイルを自動的に含めるためのフラグ。'on'
または 'off'
、もしくは数値または logical の 1
(true
) または 0
(false
) として指定します。'on'
の値は true
と等価であり、'off'
の値は false
と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState
型の on/off logical 値として格納されます。
このプロパティを
'on'
に設定した場合、特定の関数 (load
やfopen
など) の入力として指定されるデータ ファイルは自動的に .NET アセンブリに含められます。このプロパティを
'off'
に設定した場合、データ ファイルはAdditionalFiles
オプションを使用してアセンブリに追加する必要があります。
例: 'AutoDetectDataFiles','off'
データ型: logical
.NET クラスの名前。文字ベクトルまたは string スカラーとして指定します。ClassMap
入力を使用する場合、このオプションは指定できません。クラス名は .NET のクラス名の要件を満たしている必要があります。
既定値は、Files
引数にリストされている最初のファイルの名前に Class
を追加したものです。
例: 'ClassName','magicsquareClass'
データ型: char
| string
デバッグ シンボルを有効にするためのフラグ。'on'
または 'off'
、もしくは数値または logical の 1
(true
) か 0
(false
) として指定します。'on'
の値は true
と等価であり、'off'
の値は false
と等価です。したがって、このプロパティの値を logical 値として使用できます。値は、matlab.lang.OnOffSwitchState
型の on/off の logical 値として保存されます。
このプロパティを
'on'
に設定した場合、コンパイルされたアーティファクトにデバッグ シンボル情報が含まれます。このオプションによって、mbuild
からシステム コンパイラに適切なデバッグ フラグも渡されます。このデバッグ オプションを使用すると、MATLAB Runtime の初期化、関数呼び出し、または終了ルーチンのいずれでエラーが発生したかを特定できる箇所まで戻ることができます。このオプションでは、外部デバッガーで MATLAB ファイルをデバッグすることはできません。このプロパティを
'off'
に設定した場合、デバッグ シンボルは含まれません。これは既定のオプションです。
例: 'DebugBuild','on'
データ型: logical
デプロイ可能なアーカイブを組み込むためのフラグ。'on'
または 'off'
、もしくは数値または logical の 1
(true
) か 0
(false
) として指定します。'on'
の値は true
と等価であり、'off'
の値は false
と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState
型の on/off logical 値として格納されます。
このプロパティを
'on'
に設定した場合、関数はデプロイ可能なアーカイブを .NET アセンブリに組み込みます。このプロパティを
'off'
に設定した場合、関数はデプロイ可能なアーカイブを別個のファイルとして生成します。
このオプションは MWArray API でのみ使用します。
例: 'EmbedArchive','off'
データ型: logical
アセンブリのリモート処理タイプを制御するためのフラグ。'on'
または 'off'
、もしくは数値または logical 1
(true
) または 0
(false
) として指定します。'on'
の値は true
と等価であり、'off'
の値は false
と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState
型の on/off logical 値として格納されます。
このプロパティを
'on'
に設定した場合、この関数はリモート化可能なアセンブリをビルドします。このプロパティを
'off'
に設定した場合、この関数はリモート化可能ではないアセンブリをビルドします。
例: 'EnableRemoting','on'
データ型: logical
R2024b 以降
外部の AES 暗号化キー ファイルおよび MEX キー ローダー ファイルへのパス。char 行ベクトルまたは string スカラーの正確に 2 つのフィールドをもつスカラー struct として指定します。フィールド名はそれぞれ EncryptionKeyFile
と RuntimeKeyLoaderFile
です。struct のフィールドはどちらも必須です。ファイル パスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。
たとえば、struct keyValueStruct
を使用して暗号化キーを encrypt.key
、ローダー ファイルを loader.mexw64
と指定します。
keyValueStruct.EncryptionKeyFile='encrypt.key'; keyValueStruct.RuntimeKeyLoaderFile='loader.mexw64'
暗号化キー ファイルは、サポートされている次のいずれかの形式でなければなりません。
バイナリ 256 ビットの AES キー、32 バイトのファイル サイズ
16 進数でエンコードされた AES キー、64 バイトのファイル サイズ
MEX ファイル ローダーは実行時に復号化キーを取得します。これは次の引数をもつインターフェイスでなければなりません。
prhs[0]
— 入力、固定値'get'
として指定される char 配列prhs[1]
— 入力、CTF コンポーネント UUID として指定される char 配列plhs[0]
— 出力、キーの形式に応じて 32 バイトの UINT8 数値配列または 64 バイトの 16 進数でエンコードされた char 配列
複数の CTF で同じキーを共有することは避けてください。
例: 'ExternalEncryptionKey',keyValueStruct
データ型: struct
.NET Framework 4.6.2 以降の任意のバージョンをマイナー バージョンのインクリメントに関係なくターゲットにするには、'4.0'
と指定します。クロスプラットフォームの .NET 5.0 以降をターゲットにするには、'5.0'
と指定します。
例: 'FrameworkVersion','5.0'
データ型: char
| string
.NET アプリケーションとデプロイされた MATLAB コード間のデータ交換を処理するために使用されるデータ API。
mwarray
— MWArray API。この API は .NET Framework で機能します。これは Windows での既定のインターフェイスです。matlab-data
— .NET 用の MATLAB データ API。この API では .NET 5.0 以降が必要です。これは macOS での既定のインターフェイスです。
MathWorks® では .NET 用の MATLAB データ API を使用することをお勧めします。
例: 'Interface','matlab-data'
データ型: char
| string
デプロイ可能なアーカイブを難読化するためのフラグ。'on'/1/true
または 'off'/0/false
として指定します。この値は、matlab.lang.onoffSwitchState
型の on/off の logical 値として保存されます。
このプロパティを 'on'
に設定した場合、デプロイ可能なアーカイブのフォルダー構造およびファイル名はエンド ユーザーに対して難読化され、.m
、.mlapp
、.p
、.mat
、MLX、SFX、および MEX ファイルに含まれているユーザー コードおよびデータはアーカイブ内のユーザー パッケージに配置されます。また、すべての .m
ファイルがパッケージ化の前に P ファイルに変換されます。
実行時に、MATLAB コードとデータはファイル システムに抽出されるのではなく、ユーザー パッケージから直接復号化されて読み込まれます。MEX ファイルは、一時的にユーザー パッケージから抽出されてから、読み込まれます。
追加のファイル タイプをユーザー パッケージに手動で含めるには、それぞれのファイル タイプを個別の拡張子タグでファイル
に追加します。matlabroot
/toolbox/compiler/advanced_package_supported_files.xml
以下はサポートされて "いません"。
ver
関数DLL などの外部ライブラリの呼び出し
アウトプロセスの MATLAB Runtime (MATLAB データ配列の C++ 共有ライブラリ)
アウトプロセスでの MEX ファイルの実行 (
mexhost
、feval
、matlab.mex.MexHost
)R2023b より前: v7.3 以外の
.mat
ファイル
このオプションを有効にすることは、-j
および -s
を指定して mcc
を使用するのと等価です。
このプロパティを 'off'
に設定した場合、デプロイ可能なアーカイブは難読化されません。これは既定の動作です。
例: 'ObfuscateArchive','on'
データ型: logical
ビルド ファイルが保存される出力ディレクトリへのパス。文字ベクトルまたは string スカラーとして指定します。このパスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。
ビルド フォルダーの既定の名前は、アセンブリ名に dotNETAssembly
を追加したものです。
例: 'OutputDir','D:\Documents\MATLAB\work\mymagicdotNETAssembly'
データ型: char
| string
アセンブリに含まれる関数のサンプル .NET ドライバー ファイルを生成するために使用する MATLAB サンプル ファイル。文字ベクトル、string スカラー、string 配列、または文字ベクトルの cell 配列として指定します。パスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。ファイルには .m
拡張子が必要です。詳細と制限については、Create Sample Code to Call Exported Functionを参照してください。
例: 'SampleGenerationFiles',["sample1.m","sample2.m"]
データ型: char
| string
| cell
R2024b 以降
デプロイ可能なアーカイブに組み込む秘密鍵を指定する secret マニフェスト JSON ファイルへのパス。文字ベクトルまたは string スカラーとして指定します。このパスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。
MATLAB コードで関数 getSecret
、getSecretMetadata
、または isSecret
を呼び出す場合、デプロイ可能なアーカイブに組み込む秘密鍵を JSON secret マニフェスト ファイルで指定しなければなりません。コードで getSecret
を呼び出す場合に SecretsManifest
オプションが指定されていないと、MATLAB Compiler™ は警告を発行し、
という名前の出力フォルダーにテンプレート JSON ファイルを生成します。"Embedded" フィールドで秘密鍵の名前を指定して、このファイルを修正します。<component_name>
_secrets_manifest.json
関数 setSecret
はデプロイ可能ではありません。デプロイ可能なアーカイブに秘密鍵を組み込むには、アーカイブをビルドする前に MATLAB で setSecret
を呼び出す必要があります。
シークレットを使用したデプロイの詳細については、Handle Sensitive Information in Deployed Applicationsを参照してください。
例: 'SecretsManifest','D:\Documents\MATLAB\work\mycomponent\mycomponent_secrets_manifest.json'
データ型: char
| string
共有アセンブリの署名に使用する暗号化キー ファイルへのパス。文字ベクトルまたは string スカラーとして指定します。値が空の場合、関数はプライベート アセンブリを作成します。ファイル パスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。
例: 'StrongNameKeyFile','sgKey.snk'
データ型: char
| string
含めるサポート パッケージ。次のオプションのいずれかとして指定します。
'autodetect'
(既定) — 依存関係の分析プロセスにより、必要なサポート パッケージが自動的に検出され、含められます。'none'
— サポート パッケージは含められません。このオプションを使用すると、ランタイム エラーの原因となる可能性があります。string スカラー、文字ベクトル、または文字ベクトルの cell 配列 — 指定されたサポート パッケージのみが含められます。インストールされている、または特定のファイルで使用されるサポート パッケージのリストを表示するには、
compiler.codetools.deployableSupportPackages
を参照してください。
例: 'SupportPackages',{'Deep Learning Toolbox Converter for TensorFlow Models','Deep Learning Toolbox Model for Places365-GoogLeNet Network'}
データ型: char
| string
| cell
ビルドの詳細を制御するためのフラグ。'on'
または 'off'
、もしくは数値または logical 1
(true
) または 0
(false
) として指定します。'on'
の値は true
と等価であり、'off'
の値は false
と等価です。したがって、このプロパティの値を logical 値として使用できます。値は、matlab.lang.OnOffSwitchState
型の on/off の logical 値として保存されます。
このプロパティを
'on'
に設定した場合、MATLAB コマンド ウィンドウには、ビルド プロセス中のコンパイラ出力を示す進行状況情報が表示されます。このプロパティを
'off'
に設定した場合、コマンド ウィンドウには進行状況の情報は表示されません。
例: 'Verbose','on'
データ型: logical
出力引数
ビルド結果。compiler.build.Results
オブジェクトとして返されます。Results
オブジェクトは以下で構成されます。
'dotNETAssembly'
であるビルド タイプ以下のコンパイル済みファイルへのパス:
AssemblyName
.dllAssemblyName
Native.dllAssemblyName
_overview.dllGettingStarted.html
含まれているサポート パッケージのリスト
ビルド オプション。
DotNETAssemblyOptions
オブジェクトとして指定必須およびオプションの依存関係のリスト。
Dependencies
オブジェクトとして指定します。
制限
R2023a において: この関数は、Windows に加え、Linux® および macOS の各オペレーティング システムでサポートされています。
バージョン履歴
R2021a で導入ExternalEncryptionKey
オプションを使用して、256 ビットの AES 暗号化キーと、実行時に復号化キーを取得するための MEX ファイルのローダー インターフェイスを指定します。このオプションは、mcc -k
オプションと等価です。
SecretsManifest
オプションを使用して、デプロイ可能なコード アーカイブ内部に組み込むシークレットを指定する JSON ファイルを含めます。このオプションは、mcc -J
オプションと等価です。
Interface
オプションを使用して、データ交換の処理に使用するデータ API を指定します。
FrameworkVersion
オプションを使用して、.NET Framework 4.6.2 以降のバージョンを指定します。
SupportPackages
オプションを使用して、デプロイ可能なコード アーカイブに含めるサポート パッケージを指定します。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)