C# Nuget项目A引用的另一个项目C怎么被安装Nuget的项目B使用

最近整理的一个Nuget项目A,我从原先Nuget项目A抽取了一个新项目C,然后项目A引用了项目C。

当项目A的Nuget被项目B引用后,发现项目B并不能直接访问项目C的成员。(只能在项目B引入项目C或者项目C也打包成Nuget包,项目B安装项目C的Nuget包)

经过组内大佬 唐宋元明清2188 的指点,只需要在项目A的项目文件中添加TargetsForTfmSpecificBuildOutput和BuildOutputInPackage节点即可(引用项目还需要添加PrivateAssets)。

下面实例

复制代码
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>net472;</TargetFrameworks>
    <Platforms>AnyCPU;x64;x86</Platforms>
    <Description>测试组件</Description>
      <Version>1.0.0</Version>
      <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
      <GenerateDocumentationFile>True</GenerateDocumentationFile>
      <TargetsForTfmSpecificBuildOutput>CopyProjectReferencesToPackage</TargetsForTfmSpecificBuildOutput>
  </PropertyGroup>

    <Target Name="CopyProjectReferencesToPackage">
        <ItemGroup>
            <BuildOutputInPackage Include="@(ReferenceCopyLocalPaths->WithMetadataValue('ReferenceSourceTarget', 'ProjectReference'))" />
        </ItemGroup>
    </Target>

  <ItemGroup>
    <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\Data\Data.csproj">
      <PrivateAssets>all</PrivateAssets>
    </ProjectReference>
  </ItemGroup>
</Project>

这样子项目B安装了该Nuget则不需要再安装Newtonsoft.Json和Data项目也可以直接访问这两个项目的成员了

相关推荐
hunterandroid9 分钟前
Compose 状态管理:remember、rememberSaveable 与状态提升
前端
用户2986985301421 分钟前
Word 文档文本查找与替换的 Java 实现方案
java·后端
星栈22 分钟前
Dioxus 接数据库最容易写歪的 3 个地方:sqlx + SQLite 怎么接才顺
前端·rust·前端框架
晴虹23 分钟前
vue3-scroll-more:横向滚动条-元素或页签过多滚动显示处理的组件
前端·vue.js
阿哉24 分钟前
Nacos 服务发现源码:藏在背后的两套事件机制,90%的人只讲了一半
java
代码搬运媛25 分钟前
Claude 全栈开发专用 Rules 配置
前端
PedroQue9929 分钟前
uni-router v1.7.0重磅更新:守卫重定向自由掌控
前端·uni-app
逸铭29 分钟前
Day 4:登录与 Token——桌面端怎么存密钥
前端·客户端
默_笙30 分钟前
🍞 我用 CSS 画了一个会转的 3D 立方体,同事以为我学了 Three.js(这节课真的很神奇,我很喜欢)
javascript
溯朢35 分钟前
TokUI 流式渲染的 SSE 全链路拆解
前端