我创建了一个运行良好的部署项目,现在我想将它添加到源代码控制存储库以供其他人使用。
我面临的主要问题是 deploytool
创建的 .prj
文件包含不能在其他计算机上运行的绝对路径。到目前为止,我已经尝试了以下方法:
- 仅使用
mcc
而不使用deploytool
创建独立的 exe。这很好用,但我可以找到一种方法来创建包含所有内容的最终_pkg.exe
。 mcc 似乎无法创建此文件,而且似乎没有任何其他工具可以创建此文件。真的是这样吗? - 编辑
.prj
文件以包含相对路径而不是绝对路径。这仅部分起作用,因为.prj
文件包含一个名为MATLABPath
的部分,该部分始终被 matlab 的当前setpath
替换。任何使用此文件的人都必须检查它,因为它在使用时会被更改。 - 找到生成
.prj
文件的方法。 mcc 文档说:使用 mcc 或 deploytool 创建的项目文件有资格使用此选项。
建议有一种方法可以使用mcc 创建
但我找不到如何做到这一点。.prj
文件
这种情况有解决办法吗?
最佳答案
我们在使用 Matlab Builder JA 时遇到了同样的问题。不仅路径是绝对路径,Matlab 还会添加它在路径上找到的其他工具箱,这很烦人,因为构建机器没有很多工具箱的许可证。
所以我们要做的是:
- 手动编辑 prj 文件以去除绝对路径
- 将其 checkin 源代码管理并使用 mcc 构建
- 永远不要在部署工具触及 prj 文件后 checkin 它(在编辑器中手动进行所有更改)
我们的版本控制允许您修改文件而无需显式 checkout ,因此使用 deploytool 不是问题。但是你为什么要这么做?
不确定最终的打包器做了什么,但如果它只是将 MCR 与编译后的二进制文件捆绑在一起,我会写一个替换。
关于Matlab 部署 : add files to source control?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1790417/