我有一个自定义的 MSBuild 目标,部分代码如下所示 ...
<Target Name="PublishHtm">
<PropertyGroup>
<PublishHtmTemplateContents>$([System.IO.File]::ReadAllText($(PublishHtmTemplatePath)))</PublishHtmTemplateContents>
<PublishHtm>$(PublishHtmTemplateContents)</PublishHtm>
</PropertyGroup>
<WriteLinesToFile Lines="$(PublishHtm)" File="$(PublishDir)\publish.htm" Overwrite="true"/>
</Target>
这是对此解决方案的重新尝试,我正在尝试将此模板隔离到外部文件中。该模板包含MSBuild属性引用,例如
$(ApplicationName)
。按照链接的解决方案中所描述的完全进行操作时,它可以正常工作,但是当将模板作为字符串加载时,这些属性表达式在到达文件时都没有被计算。<SPAN CLASS="BannerTextApplication">$(ApplicationName)</SPAN>
有没有一种MSBuild表达式/函数可以在调用目标的上下文中重新评估字符串?
顺便说一句,我宁愿不使用查找/替换或正则表达式替换来解决问题,而是坚持使用MSBuild表达式引擎。
使用Visual Studio 2012和.NET Framework 4.5。