我用其他研究人员开始使用的MATLAB编程语言制作了一些开源软件。为了能够运行该软件而无需购买MATLAB许可证,我使用MATLAB编译器(即deploytool
命令)将程序编译为独立应用程序(.exe)。我仍然经常更新代码以修复错误并添加功能,并希望添加自动(或手动)检查自身更新的应用程序。
有关如何通过MATLAB代码或我可能能够间接实现到MATLAB中的一般策略(例如,通过命令行调用)的建议,我们将不胜感激。
其他信息:
答案 0 :(得分:1)
Yair Altman为在MATLAB Central File Exchange上发布应用程序的人写了tool。它检查文件交换以查看该工具的新版本是否可用,并提示用户下载它。我相信它的工作方式是将文件交换提交的网页下载到一个字符串中,解析网页的文本以提取提交的最新版本号,然后如果它更新则适当地做出响应。
您可以查看代码并对其进行修改,以便解析CodePlex页面的相应文本。
答案 1 :(得分:0)
建立Sam Robert的想法,下载网页,然后将其解析为字符串,这是我最终的解决方案。如果不清楚,我下载一个RSS源,其中包含反向时间顺序的软件版本列表。然后我将RSS提要解析为第一次出现我的软件名称的字符串,然后是v(即“CARMA v”),因为我知道RSS提要将始终包含此文本后的版本号以及第一次出现将永远是最新的。我将该版本号从字符串转换为double,并将其与当前版本号进行比较。如果当前版本小于最新版本号,我提示用户访问该网站。
rss = urlread('http://carma.codeplex.com/project/feeds/rss?ProjectRSSFeed=codeplex%3a%2f%2frelease%2fcarma');
index = strfind(rss,'CARMA v');
newest = str2double(rss(index(1)+7:index(1)+11));
current = 13.00;
if current < newest
choice = questdlg(sprintf('CARMA has detected that an update is available.\nOpen download page?'),'CARMA','Yes','No','Yes');
switch choice
case 'Yes'
web('http://carma.codeplex.com/releases/','-browser');
end
delete(handles.figure_launcher);
end