2016-04-19 3 views
1

私は他の研究者が使用し始めているMATLABプログラミング言語でいくつかのオープンソースソフトウェアを作っています。 MATLABライセンスを購入することなくこのソフトウェアを実行できるように、MATLAB Compiler(つまり、deploytoolコマンド)を使用してプログラムをスタンドアロンアプリ(.exe)としてコンパイルします。私はまだバグを修正して機能を追加するためにコードを頻繁に更新しており、アプリケーションに自動的に(または手動で)自分自身への更新をチェックさせる機能を追加したいと考えています。コンパイル済みのMATLABアプリケーションで更新をチェックする方法を教えてください。

これをMATLABコードで行う方法や、MATLABに間接的に(コマンドラインコールなどで)実装できる一般的な方法についてはアドバイスをいただければ幸いです。

追加情報:

  • 私はMATLAB R2016a 64ビットWindowsのバージョンを使用しています。
  • 私はCodePlexにソフトウェアとソースコードをホストしています。

答えて

0

ウェブページをダウンロードして文字列として解析するというSam Robertの考えを捨てて、これが私が解決した解決策です。明らかでない場合は、ソフトウェアのバージョンの逆順リストを含むRSSフィードをダウンロードします。私は、RSSフィードが常にこのテキストの後のバージョン番号を含み、最初のオカレンスを含むことを知っているので、RSSフィードを、ソフトウェア名の最初のオカレンスの後に続く文字列(v)(つまり、 "CARMA v"常に最新のものになります。そのバージョン番号を文字列からdoubleに変換し、それを現在のバージョン番号と比較します。現在のバージョンが最新のバージョン番号よりも小さい場合は、ユーザーにWebサイトを訪問するよう促します。

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 
1

Yair Altmanは、MATLAB Central File Exchangeでアプリケーションをリリースした人のためにtoolを書いています。 File Exchangeをチェックして、新しいバージョンのツールが利用可能かどうかを確認し、ユーザーにダウンロードを促します。私はそれが動作する方法は、ファイル交換の提出のためのWebページを文字列にダウンロードし、Webページのテキストを解析して最新のバージョン番号を抽出し、それが新しい場合に適切に応答することだと信じています。

コードを見て、CodePlexページの対応するテキストを解析するようにコードを修正することができます。

関連する問題