gpt4 book ai didi

asp.net-core - 使用 dotnet pack 包含所有依赖项

转载 作者:行者123 更新时间:2023-12-04 16:13:51 26 4
gpt4 key购买 nike

有没有办法强制dotnet pack包括所有引用的程序集(project.json 中的所有依赖项)?

我相信这是相关的:

  • https://github.com/dotnet/cli/issues/1290
  • https://github.com/dotnet/cli/issues/3959
  • 最佳答案

    截至 2020 年,没有官方支持的方式来执行此操作。但是很多人想出了实现它的方法,目前最好的方法是安装 NuGet package由惊人的 Teroneko 准备.然后你需要做的就是编辑你的 .csproj 来更新你所有的项目来标记 PrivateAssets="all" , as per the package README .

    如果您无法安装上述 NuGet 包,您可以通过编辑 by editing your .csproj to include the following 来达到相同的效果。 (再一次,这是由 Teroneko 发现的——这本质上就是他创建的 NuGet 包所做的):

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

    <Target Name="CopyProjectReferencesToPackage" DependsOnTargets="BuildOnlySettings;ResolveReferences">
    <ItemGroup>
    <!-- Filter out unnecessary files -->
    <_ReferenceCopyLocalPaths Include="@(ReferenceCopyLocalPaths->WithMetadataValue('ReferenceSourceTarget', 'ProjectReference')->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>
    与包一样,然后在 .csproj 中使用 PrivateAssets="all" 标记依赖的项目引用。 ,它只是工作(tm)。

    关于asp.net-core - 使用 dotnet pack 包含所有依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40396161/

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