gpt4 book ai didi

c# - 目标项目没有 app.config 时的 NuGet app.config XDT

转载 作者:数据小太阳 更新时间:2023-10-29 02:12:14 26 4
gpt4 key购买 nike

我试图打包一个包含文件“app.config.intall.xdt”的 nuget-packge。 xdt文件是为了支持XML-Document-Transform (XDT) .

如果要安装 nuget-package 的目标项目有 app.config,XDT 将正确执行,但问题是如果目标项目没有 app.config,XDT 将不执行任何操作。

当需要XDT操作时,如果目标项目没有文件,有什么方法可以创建app.config文件吗?

下面的代码向您展示了我的 xdt 文件“app.config.intall.xdt”,如果您想尝试安装导致问题的 nuget 包,请在 nuget-packager 控制台中运行以下命令。

安装 nuget 包

install-package Experiment.Xunit -version 2.0.0-pre08

app.config.intall.xdt

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<runtime xdt:Transform="InsertIfMissing">
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly xdt:Transform="InsertIfMissing"
xdt:Locator="Condition(_defaultNamespace:assemblyIdentity/@name='xunit.extensions')">
<assemblyIdentity name="xunit.extensions" publicKeyToken="8d05b1bb7a6fdb6c" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.9.0.1566" newVersion="1.9.0.1566" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

最佳答案

您可以使用 Install.ps1 or Init.ps1 hook由 NuGet 提供。

创建一个 powershell 脚本,如果 app.config 不存在,它会使用默认值创建它

另一种方法是(我现在无法测试)在 content folder of nuget packages 中添加具有所需值的 app.config 文件.

我认为 nuget 不会覆盖项目根目录中的文件。

---更新---

Nuget 文档:Allow users to overwrite content files that already exist

---更新2----

我做了一些测试:你可以使用Configuration File Transformations而不是 XDT 以获得所需的行为

关于c# - 目标项目没有 app.config 时的 NuGet app.config XDT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26016384/

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