compiler.b​uild.dotNE​TAssemblyを​用いて、関数ファイル​内で呼び出される関数​ファイルを含めてデプ​ロイする方法

お疲れ様です。
compiler.build.dotNETAssemblyを用いて.NETアセンブリの作成を行おうと考えています。
ビルドの際、関数ファイル内で複数の関数ファイルを呼び出しており、その複数の関数ファイルが下層フォルダ内に存在しています。
以下、フォルダの階層例
...\MATLAB\WORK\mainfolder---main.m
|
|---...\MATLAB\WORK\mainfolder\sub1_folder
| |---sub1.m
|
|----...\MATLAB\WORK\mainfolder\sub2_folder
|---sub2.m
例を用いて説明するとmain.m関数内でsub1.m関数とsub2.m関数を呼び出しています。
フォルダのパス指定を行い、sub1.mとsub2.mをmain.mと一緒にビルドしようと考えました。
その際、下記のようなコマンドを実行することでビルドを行いたいと思いましたが、失敗しました。
AddFiles1 = fullfile('...\MATLAB\WORK\mainfolder\sub1_folder',{"sub1.m"})
AddFiles2 = fullfile('...\MATLAB\WORK\mainfolder\sub1_folder',{"sub2.m"})
buildResults = compiler.build.dotNETAssembly("main.m", 'Interface','matlab-data','Verbose','on', 'OutputDir','.\output','AssemblyName','Main','AdditionalFiles',AddFiles1,AddFiles2)
フォルダパスを指定してのcompiler.build.dotNETAssemblyを用いたコンパイル方法について教えていただければ幸いです。

 Akzeptierte Antwort

Kojiro Saito
Kojiro Saito am 28 Dez. 2023

1 Stimme

AdditionalFilesにはファイル単位またはフォルダー単位で指定できますので、char文字列のセル配列(シングルクオーテーションの文字列を中括弧で囲む)か、string配列(ダブルクオーテーションのstring文字列を大括弧で囲む)かの2通りがあります。
フォルダーを指定する場合 (sub1_folderとsub2_folderのファイル全てを含める)
AddFiles1 = '...\MATLAB\WORK\mainfolder\sub1_folder';
AddFiles2 = '...\MATLAB\WORK\mainfolder\sub2_folder';
buildResults = compiler.build.dotNETAssembly("main.m", 'Interface','matlab-data','Verbose','on', 'OutputDir','.\output','AssemblyName','Main','AdditionalFiles', {AddFiles1,AddFiles2})
ファイル単位で指定する場合 (cell配列を使用)
AddFiles1 = fullfile('...\MATLAB\WORK\mainfolder\sub1_folder', {'sub1.m'});
AddFiles2 = fullfile('...\MATLAB\WORK\mainfolder\sub2_folder', {'sub2.m'});
buildResults = compiler.build.dotNETAssembly("main.m", 'Interface','matlab-data','Verbose','on', 'OutputDir','.\output','AssemblyName','Main','AdditionalFiles', [AddFiles1,AddFiles2])
ファイル単位で指定する場合 (string配列を使用)
AddFiles1 = fullfile("...\MATLAB\WORK\mainfolder\sub1_folder", ["sub1.m"]);
AddFiles2 = fullfile("...\MATLAB\WORK\mainfolder\sub2_folder", ["sub2.m"]);
buildResults = compiler.build.dotNETAssembly("main.m", 'Interface','matlab-data','Verbose','on', 'OutputDir','.\output','AssemblyName','Main','AdditionalFiles', [AddFiles1,AddFiles2])

3 Kommentare

啓嗣
啓嗣 am 5 Jan. 2024
回答ありがとうございます。
重ね重ね質問をしてしまい申し訳ないのですが、上記の例を真似てファイル単位、フォルダ単位でのコンパイルを試みたところ以下のようなエラーが出ました。以下、エラー内容です。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
次を使用中のエラー:compiler.internal.validate.itemMustExit
ファイルまたはフォルダーが見つかりません。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
また、指定しているパスとしては、"C:\Users\×××(ユーザー名)\Desktop\code\MATLAB\..."としています。
ご回答いただければ幸いです。
啓嗣
啓嗣 am 5 Jan. 2024
すみません、パスを打ち直したらコンパイルが通りました。
ありがとうございました。
Kojiro Saito
Kojiro Saito am 5 Jan. 2024
無事に解決して良かったです。回答の採用、ありがとうございました。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB Compiler SDK finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!