尽管没有标记为只读,但Nant属性不能被覆盖

pri*_*iya 1 nant

我使用的是0.85版本.我已经在文件中定义了一个属性,并且没有指定像'read only = true'.但是在我尝试更改属性的值时,我得到警告说,属性不能被覆盖.

我试过设置readonly="false" overwrite="true".但似乎没什么用.任何帮助将不胜感激 .

Mad*_*man 11

使用除非属性,它的工作原理.

<property name="msbuild.path" value="CONFIGURABLE" unless="${property::exists('msbuild.path')}" />
Run Code Online (Sandbox Code Playgroud)

然后像往常一样nant -D:msbuild.path = ...


man*_*lds 10

需要更多详细信息,特别是如果您从命令行"更改属性的值".

我看到的一件事引起了一些混乱,当从命令行(-D:prop=value)重写属性时,如果在文件(<property name="prop" value="value"/>)中定义了相同的属性,它将说不能覆盖只读属性,因为属性设置来自命令line是只读的,它不能被文件中定义的属性覆盖.

这不是另一种方式,这导致一些混乱,人们认为,尽管没有readonly设置为真等,仍然说不能被覆盖.

因此,如果要从命令行覆盖,请尝试查看您设置的属性是否实际使用了您想要的值.