MSBuild:使用ReadLinesFromFile评估保留属性

时间:2009-10-20 11:18:28

标签: msbuild properties evaluate reserved

我正在使用MSBuild来自定义Visual Studio,WiX,SandCastle,...项目的构建过程。 为了使它尽可能通用,我想使用定义一些“项目特定”设置的文本文件,例如应该从哪里加载文件,运行哪些自定义可执行文件等等。

文本文件可能如下所示: $(MSBuildProjectDirectory).... \ Projects \ Project1 \ bin \ Release obj \ $(Configuration)\ Project1.Files.wxi -in * .dll -id TEST

每一行代表一个命令或文件。

在我的目标中,我正在使用ReadLinesFromFile来获取这些文件的内容。 到目前为止一切都很好!

问题在于,在执行此操作时,不会评估像'$(Configuration),$(MSBuildProjectDirectory)这样的保留属性,它们只是作为常规文本处理。

关于如何在不创建自定义任务的情况下评估这些$ -place持卡人的任何想法?

提前致谢!

此致 robert.oh。

1 个答案:

答案 0 :(得分:1)

为什么不创建一个单独的文件(例如,命名为“local.build.config”),而不是自己阅读和解析所有内容,而不是

<PropertyGroup>
    <someproperty>$(MSBuildProjectDirectory)..\Projects\Project1\bin\Release</someproperty>
</PropertyGroup>

文件中的信息,然后在您的实际项目中,在您的构建顶部使用这样的行导入文件:

<Import Project="local.build.config" Condition="Exists('local.build.config')"/>

通过让MSBuild引擎尽其所能来防止重新发明轮子。