XDT 转换 - 转换转换

本文关键字:转换 XDT | 更新日期: 2023-09-27 17:57:15

我正在创建一个nuget包,其中安装包的部分结果是修改我的web.release.config。

我使用我的 web.release.config.install.xdt 将元素插入此文件没有问题,但我需要在我插入的元素上保留 xdt:Transform 和 xdt:定位器属性,因为这些转换需要在构建应用程序以进行部署时运行。

因此,例如,在安装 nuget 包时,我希望看到:

<add key="serilog:using" value="Serilog.Sinks.Seq" xdt:Transform="InsertIfMissing" xdt:Locator="Match(key)" />

显示在 web.release.config 中,包括 xdt:Transform 和 xdt:Locator 属性。

可以这样做吗?

XDT 转换 - 转换转换

我不相信你正在尝试做的事情得到了msbuild或SlowCheetah的支持。大多数 NuGet 包所有者对其客户的实现不够了解,无法将值设置为特定于环境的配置。此外,转换工具在编写时没有考虑到 NuGet,因为它们是为满足不同的需求而构建的。 对不起,坏消息。

你可以使用 init.ps1 powershell 脚本来完成此操作(NuGet 将在解决方案中首次安装包时运行此脚本),但它不太干净。