首页 > 其他分享 >Nuget 多项目复合打包

Nuget 多项目复合打包

时间:2022-08-28 18:17:03浏览次数:73  
标签:间通信 H3C 复合 Nuget 打包 Core Channel

我这里有个进程间通信组件,用于提供多应用间通信的解决方案。

进程间通信,分为客户端和服务端,俩端肯定会有些共性代码,所以加了个H3C.Channel.Core项目

因为之前还不太了解nuget这块,然后我就踩到了坑:

引用H3C.Channel.Client包后,H3C.Channel.Core代码竟然没有默认打包到Client的Nuget包内部。

当时项目忙,没时间关注这块,就临时搞了个H3C.Channel.Core包,所以进程间通信就有三个Nuget包

但用一段时间,会发现真的烦。。。每次都要更新3个nguet包(程度员是最不喜欢重复工作量的)

今天终于有时间看这个心病。网上看了相关博客,好像是可以解决的,emmm。。。我也来操作下

项目引用的生成文件复制操作(以下复制即可):

 1     <PropertyGroup>
 2         <TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage</TargetsForTfmSpecificBuildOutput>
 3     </PropertyGroup>
 4     <Target Name="CopyProjectReferencesToPackage" DependsOnTargets="ResolveReferences">
 5         <ItemGroup>
 6             <BuildOutputInPackage Include="@(ReferenceCopyLocalPaths->WithMetadataValue('ReferenceSourceTarget', 'ProjectReference'))" />
 7         </ItemGroup>
 8     </Target>
 9     <ItemGroup>
10         <ProjectReference Include="..\H3C.Channel.Core\H3C.Channel.Core.csproj" >
11             <PrivateAssets>all</PrivateAssets>
12         </ProjectReference>
13     </ItemGroup>
View Code

俩个重点:

  • CopyProjectReferencesToPackage - build 出来的 dll 程序集文件打包进 nupkg 文件
  • PrivateAssets - 引用所有文件

我们尝试下,生成新的nuget看看。通过VS查看测试类ChannelDemoTest,反编译后dll的位置,是okay的:

减少打包依赖后,减少了后续的维护成本(重复工作):

 

注:此博客没啥技术含量,只是用来记录我的辛酸泪(我的博客很多是类似水文,记录型的)

标签:间通信,H3C,复合,Nuget,打包,Core,Channel
From: https://www.cnblogs.com/kybs0/p/16633273.html

相关文章

  • 实现串口通信数据帧打包与解析,串口通信可靠传输,屡试不爽的数据封包与状态机数据解析程
    前言串口通信是一种异步通信方式,收发双方约定好通信速率,通过两根数据线即可简单的时序全双工数据收发。最常用的串口通信协议由1位起始位8位数据位1位停止位组成,总共10位......
  • EYOUCMS模板如何打包备份(搬家教程)
    1,本地备份数据库2,删除install_********目录下的install.lock文件3,再改名install_1540256968为install4,删除data/runtime所有文件夹5,打包根目录下所有文件,上传空间解压即......
  • 深度学习模型打包动态库给外部调用SOP
    一、Onnxruntime1.将DNN模型转换成ONNX格式1.1pytorch->onnx  待补充。。。1.2tensorflow->onnx1.2.1搭建环境1.2.1.1安装tf2onnx  pipinstalltf2onnx1.2.......
  • 打包jar包,和运行
    如果有MANIFEST.MF这个文件就要删除,第一次没有File>ProjectStructure第一种打包成一个jar包和多个依赖包统一打包在一起: 点击你刚刚生成的jar包运行一下:生......
  • vue2 项目也想使用vite打包的便捷?
    首先很多项目正在更新迭代,vue2项目同学也知道vite打包速度开发模式飞快,而且生产模式我给大家贴个图这是vite构建的vue2的初始化项目性能这是未使用webpack构建的初始......
  • 将python打包成exe
    1.PyInstallerpass2.AutoPYtoEXE2.1简单说明简介:使用简单的图形界面将.py转换为.exe。时间:jul9,2018~Aug9,2022python版本:3.6 ~3.102.2安装(1)通过Pypi安......
  • jenkins打包内存溢出
    现象JavaScriptheapoutofmemory问题分析报错信息翻译过来就是JavaScript堆内存不足。这里说的JavaScript指的是Node。我们都知道Node是基于V8引擎,在一般......
  • docket打包镜像内部报错
     临时记录,后面再完善 对于前端docker一般不太熟悉,当我们想要打包镜像的时候会去找教程,我按着教程去打包一个使用KOA框架搭建的node服务。 这是一个koa+ts+pm2......
  • 进一步解决关于maven打包时,资源文件没有被打包进来的问题
    进一步解决关于maven打包时,资源文件没有被打包进来的问题起因第一次使用Mybatis,将配置文件放在java包下,结果出现了配置文件编译后无法同步到target目录下这里我们可以......
  • 发布NuGet包
    1.登录NuGet1.1打开NuGet包管理器1.2使用微软账号登录1.3点击账号,下拉菜单中的APIKeys2.创建APIKeys2.1Create2.2Manage复制出来,一会用到3.创建类库......