NAnt忽略包含的构建文件中的属性

时间:2012-02-13 12:09:41

标签: nant

我正在尝试让我的项目构建文件包含一个本地构建文件,以允许为每个开发人员进行一些自定义,而不必将版本文件从版本控制提交中删除等等。

但是NAnt一直忽略我所包含的构建文件中的属性,而不是覆盖全局构建文件中设置的属性。

出于演示目的,此短版本文件的行为相同:

<project name="FooProject" default="showme" basedir="." >
<description>Foo</description>
<!-- Overwrite this property in local.build -->
<property name="database.connectionstring" overwrite="true" readonly="false" value="foo" />

<include buildfile="local.build" failonerror="true" verbose="true" />

<target name="showme" description="Show connectionstring variable">
    <echo message="Connectionstring: ${database.connectionstring}" />
</target>
</project>

- 我的local.build文件如下所示:

<property name="database.connectionstring" value="bar" />

使用此构建文件运行NAnt时的预期输出是“Connectionstring:bar”,但结果是“Connectionstring:foo”,无论我尝试哪种readonly和overwrite组合。

如果我将文件重命名为其他内容,它会失败,因此NAnt知道所包含的文件。

NAnt是v0.91 alpha。

我是否忽略了某些东西,或者NAnt不应该像我期望的那样工作?

1 个答案:

答案 0 :(得分:1)

您似乎仍应将包含的构建文件的内容包装在project-element中。像这样:

<project>
<property name="database.connectionstring" value="bar" />
</project>

当我这样做时,连接字符串是“bar”。 当然:我使用Nant 0.91决赛。