gpt4 book ai didi

nuget - Visual Studio 2017 Nuget 包排除项目引用作为另一个 nuget 引用,改为添加程序集

转载 作者:行者123 更新时间:2023-12-04 17:43:38 30 4
gpt4 key购买 nike

当我们在 Visual Studio 2017 中创建 nuget 包时,它默认将项目引用添加为另一个 nuget 引用。
我们如何在创建包时禁用它,而是:

  • 选择不同的包名
  • 在创建包时包含项目的 dll
  • 最佳答案

    PackageReference可以标注PrivateAssets="All"以确保它在打包时不会成为消费库的 NuGet 依赖项。然后消费库可以使用自定义目标将文件添加到构建的 nuget 包中。 csproj 的完整示例文件可能如下所示:

    <Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);IncludeP2PAssets</TargetsForTfmSpecificBuildOutput>
    </PropertyGroup>

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

    <Target Name="IncludeP2PAssets">
    <ItemGroup>
    <BuildOutputInPackage Include="$(OutputPath)\testprivatelib.dll" />
    </ItemGroup>
    </Target>
    </Project>

    哪里 testprivatelib.csproj是一个构建 DLL 的项目,您希望将其额外包含到 .nupkg 中。文件,而不是为该引用的项目发布额外的 NuGet 包。

    指定不同的 NuGet 包更加困难。它需要手动创建 .nuspec文件使用它来打包 NuGet 包。您可以在 https://github.com/dasMulli/nuget-include-p2p-example/tree/master/LibA 上查看如何完成此操作的示例。 - LibA.csproj设置为使用 LibA.nuspecdotnet pack叫做。

    关于nuget - Visual Studio 2017 Nuget 包排除项目引用作为另一个 nuget 引用,改为添加程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46376256/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com