C# NuGet-NU5131:未打包nuspec文件中声明的引用
我试图引用nupkg中的两个.dll文件。我已将这些文件作为引用添加到nuspec文件中:C# NuGet-NU5131:未打包nuspec文件中声明的引用,c#,.net,nuget,nuget-package,nuspec,C#,.net,Nuget,Nuget Package,Nuspec,我试图引用nupkg中的两个.dll文件。我已将这些文件作为引用添加到nuspec文件中: <references> <reference file="Project.Modules.ModuleA.dll" /> <reference file="Project.Modules.ModuleB.dll" /> </references> 当我尝试打包时,会收到以下警告,并且该包不包含引用的文件 警告:NU5131:在nuspec
<references>
<reference file="Project.Modules.ModuleA.dll" />
<reference file="Project.Modules.ModuleB.dll" />
</references>
当我尝试打包时,会收到以下警告,并且该包不包含引用的文件
警告:NU5131:在nuspec中找到了引用,但有些
在nuspec和ref文件夹中均未找到引用程序集。
添加以下引用程序集:
-将Project.Modules.ModuleA.dll添加到ref/any/目录
-将Project.Modules.ModuleB.dll添加到ref/any/目录
为了让包包含所需的文件,我应该将文件放在哪里?因为我使用的是.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>
全部的
真的
Project.Modules.ModuleA.dll
全部的
真的
Project.Modules.ModuleB.dll
然后添加一个目标:
<Target DependsOnTargets="ResolveReferences" Name="CopyProjectReferencesToPackage">
<ItemGroup>
<BuildOutputInPackage Include="@(ReferenceCopyLocalPaths->WithMetadataValue('ReferenceSourceTarget', 'ProjectReference'))"/>
</ItemGroup>
</Target>
最后将其添加到PropertyGroup元素中:
<TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage</TargetsForTfmSpecificBuildOutput>
$(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage
对我来说很有魅力你知道吗?@Trent是的,我会回答我自己的问题