我可以指定min Dub或DMD版本吗?

我可以指定min Dub或DMD版本吗?,d,dmd,dub,D,Dmd,Dub,人们一直试图用Dmd和Dub的旧版本(0.9.2而不是1.0.0)来构建我的项目,但它不起作用。我可以在dub.json文件中指定所需的最低dub版本吗?很遗憾,您不能。有关更多详细信息,请参阅。请在那里大声喧哗;-) 目前有两个解决方法 1) 在main语句中使用static if intmain() { 静态if(版本

人们一直试图用Dmd和Dub的旧版本(0.9.2而不是1.0.0)来构建我的项目,但它不起作用。我可以在dub.json文件中指定所需的最低dub版本吗?

很遗憾,您不能。有关更多详细信息,请参阅。请在那里大声喧哗;-)

目前有两个解决方法

1) 在main语句中使用static if
intmain()
{
静态if(版本<2069)
{
pragma(msg,“您的DMD版本已过时,请更新”);
返回1;
}
...
}
2) 使用
preGenerateCommands=['rdmd checkversions.d']

intmain()
{
导入标准流程:执行;
导入标准stdio:writeln;
自动版本=执行([“dub”,“--version”]);
如果(版本状态!=0)
{
writeln(“错误:未找到dub安装。”);
}
其他的
{
进口标准conv:to;
导入标准正则表达式:ctRegex,matchFirst;
自动ctr=ctRegex!`version([0-9]+)[.]([0-9]+)[.]([0-9]+)[.]([0-9]+)`;
自动r=版本输出匹配优先(ctr);
断言(r.length==4,“未找到版本”);
int major=r[1]。to!int,minor=r[2]。to!int,patch=r[3]。to!int;
如果(专业<2)
{
书面(小修);
返回1;
}
}
}

不错!我不知道你可以使用preGenerateCommands来运行命令。谢谢