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
文件,但我无法找到如何完成这项工作。
是否有这种情况的解决方案?
什么我发现最有用的使用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。
我们用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
你应该把与MathWorks公司的这样的一个增强请求的飞行。 – 2011-11-07 11:59:16