加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 当目标项目没有app.config时,NuGet app.config XDT

发布时间:2020-12-15 22:08:21 所属栏目:百科 来源:网络整理
导读:我试图打包一个nuget-packge,它有一个’app.config.intall.xdt’文件. xdt文件是支持 XML-Document-Transform (XDT). 如果要安装nuget-package的目标项目有app.config,则会正确执行XDT,但问题是如果目标项目没有app.config,XDT将不执行任何操作. 当需要XDT操
我试图打包一个nuget-packge,它有一个’app.config.intall.xdt’文件. 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-package

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>

解决方法

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

创建一个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来获得所需的行为

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读