Matlab部署:添加文件到源代码管理?

问题描述:

我创建了一个工作得很好的部署项目,现在我想将其添加到源控制存储库供其他人使用。
我面临的主要问题是deploytool创建的.prj文件包含绝对路径,这些路径在其他计算机上不起作用。到目前为止,我已经试过如下:Matlab部署:添加文件到源代码管理?

  • 只使用mcc没有deploytool创建独立的EXE。这很好,但我可以找到一种方法来创建包含所有内容的最终_pkg.exe。 mcc似乎不能创建这个文件,并且似乎没有任何其他工具。这是真的吗?
  • 编辑.prj文件以包含相对路径而不是绝对路径。这只适用于部分原因,因为.prj文件包含一个名为MATLABPath的部分,该部分始终由matlab的当前setpath代替。任何使用此文件的人都必须检查它,因为它在使用时会被更改。
  • 找到一种方法来生成.prj文件。 mcc文档说:Project files created using either mcc or deploytool are eligible to use this option.暗示有一种方法可以使用mcc创建.prj文件,但我无法找到如何完成这项工作。

是否有这种情况的解决方案?

+2

你应该把与MathWorks公司的这样的一个增强请求的飞行。 – 2011-11-07 11:59:16

这是mcc option documentation

什么我发现最有用的使用MCC是建立一个独立的EXE:

mcc -C -m <function.m> -a <fig> -a <dll> -a <etc> -d <outputPath> 

-C选项告诉mcc生成CTF文件(这是所有的编译MATLAB东西存档)作为一个单独的文件。我在一些目标计算机上遇到了麻烦,使用一个编译好的一个exe文件。

-m选项告诉mcc创建一个exe文件。

的-a选项告诉mcc包括在包中指定的文件。例如,如果你的脚本使用两个无花果文件和一个数据文件,你需要一个-a来确保它们被放入输出包中。


告诉MCC使用项目文件(我从来没有这样做我自己):

mcc -F <projectfile> 

另外,如果你在Windows上使用R2009a,有一个known bug that requires some manifest manipulation

+1

哇,也许下次你可以费心去阅读问题本身,而不仅仅是标签。 – shoosh 2009-11-24 21:13:41

+0

@shoosh - 你说得对,我脱脂的问题,并回答了一些我希望看到的,你问的不是。对于那个很抱歉。我从来没有用过''deploytool''的方式,所以我完全没有得到_pkg.exe的意思。在应答之前,我应该先做一点阅读。 – mtrw 2009-11-24 21:51:00

我们用Matlab Builder JA碰到了同样的情况。不仅路径是绝对的,Matlab还添加了它在路径中找到的其他工具箱,这是令人烦恼的,因为构建机器没有许多许可证。

所以我们做的是:

  • 手动编辑PRJ文件摆脱了绝对路径的
  • 检查其源代码控制,并与MCC建立
  • 永远不要签入PRJ文件在被deploytool触及后(在编辑器中手动执行所有更改)

我们的修订控件允许您修改文件而不显式签出,因此使用deploytool不是问题。但你为什么想要?

不知道最后的打包做什么,但如果它只是捆绑了MCR与编译的二进制,我只想写一个替代品。

我个人使用Visual Studio 2005项目,以保持我的部署项目,然后VCPROJ转换为PRJ使用构建命令的步骤 http://younsi.blogspot.com/2011/11/matlab-relative-path-issue-in-prj.html