不久前,我们通过向用户分发了一个工具箱,以便更容易地提供未来的更新,而无需用户处理搜索路径。现在,我们希望分发一个更新的版本。通常,重新打包工具箱应该生成一个新的.mlappinstall文件,它要求用户进行升级.相反,MATLAB现在认为新版本的应用程序是一个独特的新应用程序,并重新安装,而不是升级。因此,用户将在Apps窗格中使用应用程序两次,一次在过时的版本中,另一次在新版本中。
我们无法在MATLAB文档或在线上找到对此的解释。当我们安装更新后的应用程序(以便两个版本都出现在Apps窗格中),进一步更改它将按预期进行升级,因此不幸的是,我们不能提供一个最小的工作示例,因为我们不能重现问题。
的问题是:如何建立应用程序的唯一性?应用程序名和作者字段与原始值相同,版本号也在增加,那么为什么MATLAB不承认应用程序已经安装了呢?
发布于 2014-05-05 16:46:11
当您出现这种不连续性时,您是通过在Matlab中的文件浏览器中单击原始.prj文件重新打包它,还是再次运行"Package“并填写相同的属性?
我认为决定应用程序独特身份的是一个GUID,它是由"Package“向导在幕后生成的。如果您在Matlab中打开现有的.prj,它将重新使用该GUID。如果您再次运行"Package“,您将得到一个新的GUID,不管您为不同的开发人员提供了什么--可见的应用程序属性。
您可以在.prj和.mlappinstall文件中进行挖掘,亲自查看。(我在任何地方都找不到它的文档;我只是在文件中穿插一下,做了一些尝试和错误。).prj只是XML,而.mlappinstall文件是一个具有“开放打包约定”布局的压缩文件。在.prj中,有一个包含GUID的param.guid元素。在.mlappinstall中,它在GUID元素中的元数据/appProperties.xml中。
如果您再次遇到同样的问题,请确保使用现有的.prj文件重新打包。或者,如果没有它,一旦创建了新的.prj文件,就从旧的.mlappinstall文件中挖掘出元数据/appProperties.xml中的旧GUID,并将其复制到新的.prj文件中,我认为它将表现为“相同”的应用程序。这甚至可以让您更改您的应用程序的名称和联系方式,它仍将安装在旧版本之上。
https://stackoverflow.com/questions/22967776
复制相似问题