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

3 visualizzazioni (ultimi 30 giorni)
啓嗣
啓嗣 il 27 Dic 2023
Commentato: Kojiro Saito il 5 Gen 2024
お疲れ様です。
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を用いたコンパイル方法について教えていただければ幸いです。

Risposta accettata

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

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su MATLABCompiler SDK 入門 in Help Center e File Exchange

Prodotti


Release

R2023b

Community Treasure Hunt

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

Start Hunting!