NuGet – NU5131: nuspec文件中声明的引用没有被打包。

我试图在nupkg中引用两个.dll文件。我在nuspec文件中添加了这两个文件作为引用。

<references>
   <reference file="Project.Modules.ModuleA.dll" />
   <reference file="Project.Modules.ModuleB.dll" />
</references>

当我尝试打包时,我得到了以下警告,并且软件包没有包含引用的文件。

WARNING: NU5131: Reference were found in the nuspec, but some reference assemblies were not found in both the nuspec and ref folder. 添加以下参考汇编。 – 添加Project.Module.ModuleA.dll到refany目录下 – 添加Project.Module.ModuleB.dll到refany目录下。

我应该把文件放在哪里才能让软件包包含所需的文件?

解决方案:

因为我使用的是.net core 3.1, 所以我只需要在nupkg的project.csproj文件中做一些调整。我是这样做的。

添加一个项目组

<ItemGroup>
    <ProjectReference Include="..\..\Project.Modules.ModuleA.csproj" >
      <PrivateAssets>all</PrivateAssets>
      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>
      <IncludeAssets>Project.Modules.ModuleA.dll</IncludeAssets>
    </ProjectReference>
    <ProjectReference Include="..\Project.Modules.ModuleB.csproj" >
      <PrivateAssets>all</PrivateAssets>
      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>
      <IncludeAssets>Project.Modules.ModuleB.dll</IncludeAssets>
    </ProjectReference>
  </ItemGroup>

然后添加一个目标

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

最后在PropertyGroup元素中添加这个。

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

对我来说很有效

给TA打赏
共{{data.count}}人
人已打赏
解决方案

如何重置Hortonworks密码?

2022-4-20 17:08:55

解决方案

PHP 从HTML选择标签发布查询

2022-4-20 17:08:57

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索