フィルターのクリア

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

2 ビュー (過去 30 日間)
啓嗣
啓嗣 2023 年 12 月 27 日
コメント済み: Kojiro Saito 2024 年 1 月 5 日
お疲れ様です。
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を用いたコンパイル方法について教えていただければ幸いです。

採用された回答

Kojiro Saito
Kojiro Saito 2023 年 12 月 28 日
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 件のコメント
啓嗣
啓嗣 2024 年 1 月 5 日
すみません、パスを打ち直したらコンパイルが通りました。
ありがとうございました。
Kojiro Saito
Kojiro Saito 2024 年 1 月 5 日
無事に解決して良かったです。回答の採用、ありがとうございました。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMATLABCompiler SDK 入門 についてさらに検索

製品


リリース

R2023b

Community Treasure Hunt

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

Start Hunting!