XDT变换 - 转换变换

Kel*_*lly 9 c# visual-studio xdt-transform

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

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

所以例如在安装nuget包时我想看到:

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

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

是否有可能做到这一点?

P. *_*Roe 1

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

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