.netcore如何自动将NuGet包中xml文件复制到输出目录

本文档介绍了如何解决.netcore项目在打包时,不自动复制非.dll、.pdb文件(如xml文档)到输出目录的问题。作者提出通过编写PowerShell脚本,在项目生成事件中执行,实现自动复制NuGet包中的xml文件到输出目录,以满足对xml文档的需求。此外,还提到了其他解决方案,如在PackageReference中设置GeneratePathProperty,或尝试使用IncludeContentInPack属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.netcore如何自动将NuGet包中xml文件复制到输出目录

说明

    (本人是java半路出家netcore,能力有限,有不对的地方请轻踩,谢谢!)这段时间因为要进行模块拆分,所有项目需要打包上传到仓库然后再引用。主程序需要用到子模块项目的xml说明文档(至于如何将xml包含到NuGet包中上传这里就不再叙述,度娘能够提供很好的建议)。但是netcore出于资源文件复制到输出目录会出现重复等问题,后缀为.dll、.pdb以外的文件不会复制到输出目录。当时我也没有找到可以配置的相关属性,经过一段时间的摸索才搞定此问题,因此把解决的步骤记录下来给碰到类似问题的人提供解决思路。(formwork应该不存在此类问题,希望netcore后续会解决这个问题,会省不少事)

思路

    编写一个PowerShell脚本,其功能是将Nuget包中xml文件复制到输出目录, 然后通过项目生成事件执行脚本达到自动复制xml的目的。

步骤

  1. 编写脚本copyxml.ps1,核心是通过dotnet命令找到项目依赖包信息拼接成xml文件路径,然后复制到输出目录。

    Write-Host("Start...") -ForegroundColor red -BackgroundColor white;
    # 本地包所在列表(dotnet命令确定拉取下来的nuget包保存位置)
    $localpackPahts=dotnet nuget locals global-packages -l
    
    # xml需要复制输出的目录
    $outputDirectory=".\bin\Debug\netcoreapp3.1\"
    
    #包所在基本路径
    $packageBasePath
    
    # 需要复制xml的包列表 (如果是要copy所有包中的xml则不需要此变量 下面的逻辑也需要适当更改)
    $nameKeys='A.CRM.Domain','A.ASM.Domain'
    
    #包基本路径赋值 (通过dotnet nuget loca
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值