如何解决即使未标记为Nant属性,Nant属性也无法覆盖
|| 我正在使用nant 0.85版本。我已经在文件中定义了一个属性,但未指定like \'read only = true \“。但是,无论我在哪里尝试更改该属性的值,我都会得到警告,说该属性不能被覆盖。 我尝试设置readonly=\"false\" overwrite=\"true\"
,但是似乎没有任何效果。任何帮助将不胜感激 。
解决方法
使用除非属性,它的工作原理。
<property name=\"msbuild.path\" value=\"CONFIGURABLE\" unless=\"${property::exists(\'msbuild.path\')}\" />
然后像往常一样nant -D:msbuild.path = ...
,需要更多详细信息,尤其是从命令行“更改属性的值”的情况下。
我所看到的引起混乱的一件事是,当从命令行(-D:prop=value
)覆盖属性时,如果在文件(<property name=\"prop\" value=\"value\"/>
)中定义了相同的属性,它将说只读属性不能被覆盖,因为该属性已设置从命令行读取是只读的,不能被文件中定义的属性覆盖。
并非相反,这引起了一些混乱,人们认为尽管未将ѭ4设置为true等,但仍然不能忽略。
因此,如果要从命令行覆盖,请尝试查看设置的属性是否实际上在使用所需的值。
,您可以在NAnt 0.85中完全做到这一点。例如,假设您有一个名称为“ myvalue \”的属性,希望能够从命令行传递该属性。您首先需要在NAnt脚本中定义属性,如下所示:
<property name=\"myvalue\" value=\"0\" overwrite=\"false\" />
调用NAnt时,只需使用-D参数来传递新值,如下所示:
nant.exe buildfile:myfile.build -logfile:mylog.log -D:myvalue=16
并且您的新值\“ 16 \”将在构建脚本中识别,您可以通过简单地回显如下值来进行测试:
<echo message=\"myvalue: ${myvalue}\" />
有关更多信息,您可以阅读文档并查看示例“ iv”:
http://nant.sourceforge.net/release/0.85/help/tasks/property.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。