![](/img/trans.png)
[英]If assembly is added to the GAC, do all assemblies it references also need to be added there too?
[英]Nuget Install - .net core - All assemblies in lib directory are not added as references
作为项目的一部分,我创建了一个 nuget package(针对 .net 核心 3.1),在最终的“lib”目录中有多个程序集。 尽管 .net 内核主张为每个引用的项目创建一个单独的 nuget package,但我遵循了此处提到的解决方法。 但是当我尝试在另一个简单的控制台项目中使用这个 nuget 时,我没有看到“编译时程序集”中引用的 lib 目录中存在的所有 DLL,只有其中一个列在编译时程序集中。 我在这里有什么遗漏吗。 ? 感谢任何帮助
If your main nuget project has many referenced assembly dlls under Dependencies --> Assemblies , it will not be added into the nuget package by your function since it is very fragile.
你必须重新包装它们。 只需在csproj
文件中额外添加这些节点即可。
<ItemGroup>
<None Include="$(TargetDir)\*.dll" Pack="true" PackagePath="lib\$(TargetFramework)"></None>
</ItemGroup>
这是我的整个csproj
文件,它将所有 dll 从引用的程序集 dll 和项目引用中打包到Lib
文件夹中。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\testtt\testtt.csproj">
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
<IncludeAssets>testtt.dll</IncludeAssets>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Reference Include="testr" Pack="true" PackagePath="lib\$(TargetFramework)">
<HintPath>..\..\testr\testr\bin\Debug\netstandard2.0\testr.dll</HintPath>
</Reference>
</ItemGroup>
<PropertyGroup>
<TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage</TargetsForTfmSpecificBuildOutput>
</PropertyGroup>
<Target Name="CopyProjectReferencesToPackage" DependsOnTargets="ResolveReferences">
<ItemGroup>
<BuildOutputInPackage Include="@(ReferenceCopyLocalPaths->WithMetadataValue('ReferenceSourceTarget', 'ProjectReference'))" />
</ItemGroup>
</Target>
<ItemGroup>
<None Include="$(TargetDir)\*.dll" Pack="true" PackagePath="lib\$(TargetFramework)"></None>
</ItemGroup>
</Project>
注意:当您将新发行版本安装到另一个项目中时,请先删除C:\Users\xxx\.nuget\packages
下存在旧错误版本的所有 nuget 缓存或使用这种方式清理 Z0558427B7B 缓存 FE 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.