小编tux*_*n91的帖子

当NuGet软件包具有Grpc.Core作为依赖项时,将二进制文件添加到项目中

我遇到一个有趣的问题,目前可能对NuGet尚不了解,但是我正在创建一个NuGet包,我将其称为Project Alpha,它依赖于Grpc,从扩展上讲,它具有对有问题的软件包的依赖:Grpc.Core

Grpc.Core,可以GrpcProject Alpha中正常安装,并且不向Project Alpha的项目添加任何新文件。另一方面,Project Beta依赖于Alpha项目,并在扩展方面Grpc.Core。当我安装Project Alpha时,安装的Grpc.Core原因导致Project Beta中的以下项目树

ProjectBeta
|- Properties/
|- References/
|- App.config
|- grpc_csharp_ext.x64.dll
|- grpc_csharp_ext.x86.dll
|- libgrpc_csharp_ext.x64.dylib
|- libgrpc_csharp_ext.x64.so
|- libgrpc_csharp_ext.x86.dylib
|- libgrpc_csharp_ext.x86.so
|- packages.config
|- Program.cs
Run Code Online (Sandbox Code Playgroud)

您会注意到它安装了6个我不希望1)包含在项目中或2)在项目根目录下的二进制文件。

查看之后Grpc.Core.nupkg,我发现这6个二进制文件来自一个runtimes文件夹。但是,只有.targets文件引用了它们,并明确表示要复制到输出目录。应该注意的是,通过将这些文件复制到输出目录中,它将正确构建。

有关更多参考:

项目Alpha依赖树

Project Alpha
|- Grpc
|  |- Grpc.Core
|- Google.Protobuf
Run Code Online (Sandbox Code Playgroud)

运行后导致以下nupkg nuget pack ProjectAlpha.csproj -Properties …

.net visual-studio nuget grpc

6
推荐指数
1
解决办法
1753
查看次数

标签 统计

.net ×1

grpc ×1

nuget ×1

visual-studio ×1