gpt4 book ai didi

msbuild - 如何在 TransformXml 任务中使用 MSbuild 属性?

转载 作者:行者123 更新时间:2023-12-02 15:03:59 25 4
gpt4 key购买 nike

我正在使用 MsBuild 和 TransformXml 任务来设置一些 web.config 文件。这一切都工作得很好,但现在我想在 xml 转换中扩展 MSBuild 属性。

更清楚地说,我使用项目组对 TransformXml 任务进行批处理,为配置不同的多个网站执行多项转换:

<PropertyGroup>
<WebsiteTargetDirectory>$(MSBuildProjectDirectory)\BUILD\</WebsiteTargetDirectory>
</PropertyGroup>

<ItemGroup>
<WebsitesToBeCopied Include="CH;DE;EN">
<InProject>false</InProject>
</WebsitesToBeCopied>
</ItemGroup>

<target name="CreateWebConfigs">
<TransformXml
Source="$(MSBuildProjectDirectory)\Web.Template.config"
Transform="$(MSBuildProjectDirectory)\Web.%(WebsitesToBeCopied.Identity).config"
Destination="$(WebsiteTargetDirectory)\%WebsitesToBeCopied.Identity)\Web.config"
/>
</target>

这工作得很好,但如果有可能在转换中获得一些 MSBuild 属性,我可以节省几行和转换。例如,我需要将“DE”、“EN”或“CH”附加到属性值,并且最好在模板中简单地使用占位符,而不是为每个 web.config 编写转换。

是否有办法实现这一目标?如果有,那将如何实现?

最佳答案

我自己找到了一个解决方案。

在 TransformXml 任务之后,我可以使用 Detokenise任务来自 MSBuildExtensionPack在第二步中将我的变量放入转换后的文件中。我只需使用原始的 $(PropertyName) 语法作为文件中的占位符,其他任务就会自动替换它们。

关于msbuild - 如何在 TransformXml 任务中使用 MSbuild 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6958646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com