我正在使用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。
答案 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引擎尽其所能来防止重新发明轮子。