Modelica 库使用不同的 MSL 版本
Modelica libraries use different MSL version
我想在 Dymola 中同时使用两个 Modelica 库,所以为了方便起见,我写了一个小脚本,loadLibraries.mos
只打开这两个库。
但是他们使用不同版本的 MSL(3.2.1 与 3.2.2),由顶层的 uses 注释定义 package.mo:
annotation(uses(Modelica(version="3.2.1")));
我们开发的库用的是3.2.2,用MSL 3.2.1的库是别人开发的。
现在,每当我 运行 mos 脚本(或当我手动打开两个库时),Dymola 想要 运行 一个更新脚本。据我所知,更新脚本没有任何改变,所以我想
要么根本不运行,例如通过定义一系列可接受的版本,例如 annotation(uses(Modelica(version>="3.2.1")));
或总是运行它,而不先询问,例如通过设置一些标志 AlwaysSilentyAcceptMSLUpgrade
.
在“编辑”、“选项”、“版本”下有一个复选标记 Force upgrade of models to MSL version
但我不确定如何从我的 mos 脚本(对于所有用户)使用它。
我务实的解决方案是问问自己,您自己的库是否真的 需要 3.2.2 中的任何内容,而 3.2.1 中还没有。因此,将您的库更改为仅需要 3.2.1。或者反过来(假设您可以更改其他库的 package.mo
)将那里的 uses
注释更改为 3.2.2
不要更改您自己的库,而是使用 Modelica 3.2.1 创建库 read-only(例如,通过创建文件 read-only)。
应该跳过提示(至少从 Dymola 2016 开始)- 据我了解,您无论如何都不会自己编辑该库。
这适用于不需要在版本之间进行任何更新的库;这显然适用于 Modelica 3.2.1->3.2.2,因为没有转换 - 但如果有不影响此特定库的转换,它也可以工作。
我想在 Dymola 中同时使用两个 Modelica 库,所以为了方便起见,我写了一个小脚本,loadLibraries.mos
只打开这两个库。
但是他们使用不同版本的 MSL(3.2.1 与 3.2.2),由顶层的 uses 注释定义 package.mo:
annotation(uses(Modelica(version="3.2.1")));
我们开发的库用的是3.2.2,用MSL 3.2.1的库是别人开发的。 现在,每当我 运行 mos 脚本(或当我手动打开两个库时),Dymola 想要 运行 一个更新脚本。据我所知,更新脚本没有任何改变,所以我想
要么根本不运行,例如通过定义一系列可接受的版本,例如
annotation(uses(Modelica(version>="3.2.1")));
或总是运行它,而不先询问,例如通过设置一些标志
AlwaysSilentyAcceptMSLUpgrade
.
在“编辑”、“选项”、“版本”下有一个复选标记Force upgrade of models to MSL version
但我不确定如何从我的 mos 脚本(对于所有用户)使用它。
我务实的解决方案是问问自己,您自己的库是否真的 需要 3.2.2 中的任何内容,而 3.2.1 中还没有。因此,将您的库更改为仅需要 3.2.1。或者反过来(假设您可以更改其他库的 package.mo
)将那里的 uses
注释更改为 3.2.2
不要更改您自己的库,而是使用 Modelica 3.2.1 创建库 read-only(例如,通过创建文件 read-only)。
应该跳过提示(至少从 Dymola 2016 开始)- 据我了解,您无论如何都不会自己编辑该库。
这适用于不需要在版本之间进行任何更新的库;这显然适用于 Modelica 3.2.1->3.2.2,因为没有转换 - 但如果有不影响此特定库的转换,它也可以工作。