我有一个我的班级库,我是nuget package

问题描述 投票:0回答:1
,我怀疑正在发生的事情是,Nuget Build并没有从引用项目中获取代码。

RenameFieldUsingJsonPropertyName() 如果是这种情况,我想我也可以在nuget上发布该子模块,然后在SDK中引用该子模型以解决该问题。但是,我的子模块是一个带有一些补丁的其他人包的叉子(包括添加此方法),所以我真的不想这样做,尤其是因为我在上游有PR。

有任何方法可以迫使Nuget构建以获取所有项目参考并包括它们?我也很有可能在这里吠叫错误的树。

NB:我已经看到了这个答案
,但是提到的旗帜似乎不存在。
    

我在阅读您的问题时想到了两个想法:


正如您已经提到的那样,使用

<ItemGroup> <ProjectReference Include="..\..\..\vendor\Hypermedia\Src\Hypermedia.JsonApi.Client\Hypermedia.JsonApi.Client.csproj" /> <ProjectReference Include="..\..\..\vendor\Hypermedia\Src\Hypermedia\Hypermedia.csproj" /> </ItemGroup>

dotnet pack
nuget pack

dotnet pack

→,使用

dotnet pack
构建的较新的nuget软件包的想法是具有多个包装,而不是具有多个汇编的单个软件包。 也许您可以在

<files>中使用

.nuspec

元素:由于您已经在构建了其他项目,因此可以将引用添加到
c# nuget
1个回答
0
投票
S.ss。 根据

Microsoftdocs

,您可以尝试以下操作:
  1. <ItemGroup>
        <ProjectReference Include="..\..\..\vendor\Hypermedia\Src\Hypermedia.JsonApi.Client\Hypermedia.JsonApi.Client.csproj">
            <IncludeAssets>all</IncludeAssets>
        </ProjectReference>
        <ProjectReference Include="..\..\..\vendor\Hypermedia\Src\Hypermedia\Hypermedia.csproj">
            <IncludeAssets>all</IncludeAssets>
        </ProjectReference>
    </ItemGroup>
    
    disclaimer:我没有测试任何一个。
    
    werified,this解决方案
    ,仅在代码以下合并到您的项目文件。

    <PropertyGroup> <TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage</TargetsForTfmSpecificBuildOutput> </PropertyGroup> <ItemGroup> <ProjectReference Include="..\libProj\libProj.csproj"> <ReferenceOutputAssembly>true</ReferenceOutputAssembly> <IncludeAssets>libProj.dll</IncludeAssets> </ProjectReference> </ItemGroup> <Target DependsOnTargets="ResolveReferences" Name="CopyProjectReferencesToPackage"> <ItemGroup> <BuildOutputInPackage Include="@(ReferenceCopyLocalPaths->WithMetadataValue('ReferenceSourceTarget', 'ProjectReference'))"/> </ItemGroup> </Target>
    	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.