首页 > 编程语言 >C# NUGET包自动复制依赖项

C# NUGET包自动复制依赖项

时间:2023-09-15 10:36:38浏览次数:45  
标签:bodong1987 C# bodong NUGET 复制 PropertyGrid True Avalonia

在csproj中配置如下内容:

<TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage</TargetsForTfmSpecificBuildOutput>

以及这个:

<Target Name="CopyProjectReferencesToPackage" DependsOnTargets="BuildOnlySettings;ResolveReferences">
    <ItemGroup>
        <!-- Filter out unnecessary files -->
        <_ReferenceCopyLocalPaths Include="@(ReferenceCopyLocalPaths-&gt;WithMetadataValue('ReferenceSourceTarget', 'ProjectReference')-&gt;WithMetadataValue('PrivateAssets', 'All'))" />
    </ItemGroup>

    <!-- Print batches for debug purposes -->
    <Message Text="Batch for .nupkg: ReferenceCopyLocalPaths = @(_ReferenceCopyLocalPaths), ReferenceCopyLocalPaths.DestinationSubDirectory = %(_ReferenceCopyLocalPaths.DestinationSubDirectory) Filename = %(_ReferenceCopyLocalPaths.Filename) Extension = %(_ReferenceCopyLocalPaths.Extension)" Importance="High" Condition="'@(_ReferenceCopyLocalPaths)' != ''" />

    <ItemGroup>
        <!-- Add file to package with consideration of sub folder. If empty, the root folder is chosen. -->
        <BuildOutputInPackage Include="@(_ReferenceCopyLocalPaths)" TargetPath="%(_ReferenceCopyLocalPaths.DestinationSubDirectory)" />
    </ItemGroup>
</Target>

    以下是我用的一个nuget包的完整配置,可供参考:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
      <TargetFrameworks>netstandard2.0;net6.0</TargetFrameworks>
      <LangVersion>preview</LangVersion>
      <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
      <Title>bodong.Avalonia.PropertyGrid</Title>
      <Version>11.0.4.0</Version>
      <Authors>bodong</Authors>
      <Description>A  PropertyGrid control implementation for Avalonia</Description>
      <PackageProjectUrl>https://github.com/bodong1987/Avalonia.PropertyGrid</PackageProjectUrl>
      <RepositoryUrl>https://github.com/bodong1987/Avalonia.PropertyGrid.git</RepositoryUrl>
      <RepositoryType>git</RepositoryType>
      <PackageTags>Avalonia;PropertyGrid;AvaloniaControls</PackageTags>
      <ProduceReferenceAssembly>False</ProduceReferenceAssembly>
  </PropertyGroup>

  <ItemGroup>
    <None Remove="Assets\Localizations\en-US.json" />
    <None Remove="Assets\Localizations\ru-RU.json" />
    <None Remove="Assets\Localizations\zh-CN.json" />
  </ItemGroup>

  <ItemGroup>
    <AvaloniaResource Include="Assets\Localizations\en-US.json" />
    <AvaloniaResource Include="Assets\Localizations\ru-RU.json" />
    <AvaloniaResource Include="Assets\Localizations\zh-CN.json" />
  </ItemGroup>

  <ItemGroup>
    <None Include="..\README_NUGET.md">
      <Pack>True</Pack>
      <PackagePath>\</PackagePath>
    </None>
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Avalonia" Version="11.0.4" />
    <PackageReference Include="Avalonia.Controls.ColorPicker" Version="11.0.4" />
    <PackageReference Include="Avalonia.Diagnostics" Version="11.0.4" />
    <PackageReference Include="System.Reactive" Version="6.0.0" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\PropertyModels\PropertyModels.csproj" PrivateAssets="All">
    </ProjectReference>
  </ItemGroup>

  <ItemGroup>
    <Compile Update="Controls\BindiListElementPlaceholderEdit.axaml.cs">
      <DependentUpon>BindiListElementPlaceholderEdit.axaml</DependentUpon>
    </Compile>
  </ItemGroup>
    
    <PropertyGroup>
        <TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage</TargetsForTfmSpecificBuildOutput>
        <PackageId>bodong.Avalonia.PropertyGrid</PackageId>
        <Product>bodong.Avalonia.PropertyGrid</Product>
        <PackageLicenseExpression>MIT</PackageLicenseExpression>
        <IncludeSymbols>False</IncludeSymbols>
        <PackageReadmeFile>README_NUGET.md</PackageReadmeFile>
        <GenerateDocumentationFile>True</GenerateDocumentationFile>
        <Nullable>disable</Nullable>
    </PropertyGroup>

    <Target Name="CopyProjectReferencesToPackage" DependsOnTargets="BuildOnlySettings;ResolveReferences">
        <ItemGroup>
            <!-- Filter out unnecessary files -->
            <_ReferenceCopyLocalPaths Include="@(ReferenceCopyLocalPaths-&gt;WithMetadataValue('ReferenceSourceTarget', 'ProjectReference')-&gt;WithMetadataValue('PrivateAssets', 'All'))" />
        </ItemGroup>

        <!-- Print batches for debug purposes -->
        <Message Text="Batch for .nupkg: ReferenceCopyLocalPaths = @(_ReferenceCopyLocalPaths), ReferenceCopyLocalPaths.DestinationSubDirectory = %(_ReferenceCopyLocalPaths.DestinationSubDirectory) Filename = %(_ReferenceCopyLocalPaths.Filename) Extension = %(_ReferenceCopyLocalPaths.Extension)" Importance="High" Condition="'@(_ReferenceCopyLocalPaths)' != ''" />

        <ItemGroup>
            <!-- Add file to package with consideration of sub folder. If empty, the root folder is chosen. -->
            <BuildOutputInPackage Include="@(_ReferenceCopyLocalPaths)" TargetPath="%(_ReferenceCopyLocalPaths.DestinationSubDirectory)" />
        </ItemGroup>
    </Target>

</Project>

 

标签:bodong1987,C#,bodong,NUGET,复制,PropertyGrid,True,Avalonia
From: https://www.cnblogs.com/bodong/p/17704274.html

相关文章

  • Redis高级客户端Lettuce详解
    Lettuce是一个高性能基于Java编写的Redis驱动框架,底层集成了ProjectReactor提供天然的反应式编程,通信框架集成了Netty使用了非阻塞IO,5.x版本之后融合了JDK1.8的异步编程特性,在保证高性能的同时提供了十分丰富易用的API,5.1版本的新特性如下:支持Redis的新增命令ZPOPMIN,ZPOPMAX,BZ......
  • HDU 1054 Strategic Game 树形DP/二分图匹配
    第一次写博文,想了半天就拿一道dp/graph的题作为处作吧此题有两种常见解法(题意比较简单,就不赘述)1.二分图最大匹配       此题等价于问一棵树中最小点覆盖数。树形结构可以把它看做是一个二分图,一个点集为奇数层,另一个点集为偶数层,显然满足二分图定义,可以套用求二分图最小点......
  • DHCP抓包-Wireshark分析
    1、DHCP协议DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。DHCP采用UDP的68(客户端)和67(服务器)端口进行通信。2、Wireshark抓包分析工具Wireshark(前称Ethereal)是一个网络封包分析软......
  • UOS安装部署Ceph集群(二)
    本篇文章介绍Ceph如何使用,包括创建/使用:块存储(rbd)、文件存储(cephfs)、对象存储(rgw)前4步详细介绍,请点击链接跳转。实验过程:  1、Ceph架构图  UOS安装部署Ceph集群(一)_[ceph_deploy][error]runtimeerror:bootstrap-osd_小时候很牛、的博客  2、实验环境说明  UOS安装部......
  • UOS安装部署Ceph集群(一)
    本篇文章介绍Ceph集群部署,包括:实验环境说明、集群基础环境、创建Ceph集群块存储(rbd)、文件存储(cephfs)、对象存储(rgw)详细介绍,请点击链接跳转。Ceph产品这里不就介绍了,网上有很多资料可查。直接上实验~实验过程:  1、Ceph架构图  2、实验环境说明  3、Ceph集群基础环境调试......
  • uos系统配置rc.local
    在uos操作系统中,rc.local对应的服务是rc-local################################################################大致过程:1、安装rc-local服务2、修改rc.local.service配置文件3、配置rc.local4、测试验证################################################################1、安......
  • 微信小程序原生开发 复制粘贴动态数据
    #wxminiProgram动态复制粘贴功能1、.wxml文件如下:<viewwx:for="{{list}}"><textbindtap="copyText"data-key="{{item.text}}">{{item.text}}</text></view>2、.js内容:Page({data:{list:[{text:"......
  • css做个芒果,哈哈
    前几天写border-radius的时候,突然想到了写个芒果color:#0000;width:120px;height:120px;background:#333;/*overflow:hidden;*/border-radius:50%340%127%256%;background:orange;background:#ffcc3a;box-shadow:-3px6px12pxorange,inset3px-6px12p......
  • The server is temporarily unable to service your request due to maintenance
    访问不了就是这个路径没有通 有几下几点最重要的就是看一下你的路径有没有错主要就是看一下你服务器的端口号是不是变更了或者就是你的ip、第二点就是看一下你的服务器有没有启动这两点是最主要的 ......
  • 【研究生学习】Pytorch基本知识
    本篇博客将记录Pytorch的基本知识,包括Pytorch的环境配置、Pytorch的结构,Pytorch的基本操作等Pytorch环境配置我是采用在Anaconda下安装Pytorch的方案,关于这个可以参考网上的大佬写的博客,跟着一步步走就行,比如下面这一篇:在Anaconda下安装Pytorch的超详细步骤除此之外,如果采用在......