我正在尝试让我的项目构建文件包含一个本地构建文件,以允许为每个开发人员进行一些自定义,而不必将版本文件从版本控制提交中删除等等。
但是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不应该像我期望的那样工作?
答案 0 :(得分:1)
您似乎仍应将包含的构建文件的内容包装在project-element中。像这样:
<project>
<property name="database.connectionstring" value="bar" />
</project>
当我这样做时,连接字符串是“bar”。 当然:我使用Nant 0.91决赛。