NuGet 无法在现有项目中安装 Grpc.Tools



我正在尝试使用 VS 2017 企业版将 NuGet 包与GrpcGrpc.CoreGoogle.Protobuf一起Grpc.Tools安装。安装除Grpc.Tools以外的所有软件包。如果我尝试安装Grpc.Tools则无法在packages/内获得相应的文件夹。包管理器命令行发出以下输出:

"Grpc.Tools 1.4.1" wird installiert.
Das NuGet-Paket "Grpc.Tools 1.4.1" wird installiert.
Commit für Wiederherstellung wird ausgeführt...
Die Sperrdatei wird auf den Datenträger geschrieben. Pfad: C:UsersUserDocumentsVisual Studio 2017ProjectsMuffelsausenCommInterfaceobjproject.assets.json
Wiederherstellung in "5,06 sec" für "C:UsersUserDocumentsVisual Studio 2017ProjectsMuffelsausenCommInterfaceCommInterface.csproj" abgeschlossen.
"Grpc.Tools 1.4.1" wurde erfolgreich auf "CommInterface" installiert.
Commit für Wiederherstellung wird ausgeführt...
Die Assetdatei wurde nicht geändert. Das Schreiben der Assetdatei wird übersprungen. Pfad: C:UsersUserDocumentsVisual Studio 2017ProjectsMuffelsausenCodeOfPointsHostobjproject.assets.json
Wiederherstellung in "14,87 ms" für "C:UsersUserDocumentsVisual Studio 2017ProjectsMuffelsausenCodeOfPointsHostCodeOfPointsHost.csproj" abgeschlossen.
Verwendete NuGet-Konfigurationsdateien:
C:UsersUserAppDataRoamingNuGetNuGet.Config
C:Program Files (x86)NuGetConfigMicrosoft.VisualStudio.Offline.config
Verwendete Feeds:
C:Program Files (x86)Microsoft SDKsNuGetPackages
https://api.nuget.org/v3/index.json
Das Ausführen von NuGet-Aktionen hat 1,75 sec gedauert.
Verstrichene Zeit: 00:00:06.8978688
========== Abgeschlossen ==========
NuGet-Pakete werden wiederhergestellt...
Verstrichene Zeit: 00:00:00.7245861
========== Abgeschlossen ==========

我没有看到任何错误。但是,packages/中不会添加Grpc.Tools子文件夹。因此,我没有protoc编译器。奇怪的是,如果我在一个新的空项目中重复相同的过程,实际上已经安装了工具。知道为什么VS 2017在我的情况下失败吗?

我的解决方案中有几个项目: * 多个 .NET Core 2.0 类库 * 一个 .NET Core 2.0 控制台应用程序 * .NET 4.6.2 WPF 桌面项目 * .NET 4.6.2 XAML 资源字典项目

唯一的解决方法是手动复制/粘贴Grpc.Tools文件夹。

NuGet 无法在现有项目中安装 Grpc.Tools

必须将Grpc.Tools安装到 .net 核心项目中。.net 核心项目的默认包目录是%USERPROFILE%/.nuget/packages.如果将此包安装到 WPF 项目,您将看到此包存在于packages文件夹中。

这就是为什么您注意到 VS 实际上将包安装到您的用户配置文件中,而不是使用您的本地packages文件夹。这是因为.Net Core项目依赖于如此多的NuGet包。几乎徘徊在 1GB 左右。我认为您不会希望为每个解决方案设置所有这些包。因此,NuGet 团队将 globe 目录用于 .net 核心项目。

如果仍然希望此包存在于本地文件夹中(不推荐(,则可以设置">NUGET_PACKAGES"环境变量。只需设置 "NUGET_PACKAGES" = "c:\teampackages"。或者,可以在解决方案旁边放置一个 NuGet.Config 文件,其中包含以下内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="globalPackagesFolder" value=".packages" />
</config>
</configuration>

有关详细信息,可以在 GitHub 上参考同一问题。

最新更新