我正在尝试使用VS 2017 Enterprise安装NuGet包 Grpc.Tools
以及 Grpc
, Grpc.Core
和 Google.Protobuf
. 安装除 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:\Users\User\Documents\Visual Studio 2017\Projects\Muffelsausen\CommInterface\obj\project.assets.json
Wiederherstellung in "5,06 sec" für "C:\Users\User\Documents\Visual Studio 2017\Projects\Muffelsausen\CommInterface\CommInterface.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:\Users\User\Documents\Visual Studio 2017\Projects\Muffelsausen\CodeOfPointsHost\obj\project.assets.json
Wiederherstellung in "14,87 ms" für "C:\Users\User\Documents\Visual Studio 2017\Projects\Muffelsausen\CodeOfPointsHost\CodeOfPointsHost.csproj" abgeschlossen.
Verwendete NuGet-Konfigurationsdateien:
C:\Users\User\AppData\Roaming\NuGet\NuGet.Config
C:\Program Files (x86)\NuGet\Config\Microsoft.VisualStudio.Offline.config
Verwendete Feeds:
C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
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
文件夹 .
1 回答
您必须将
Grpc.Tools
安装到.net核心项目中 . The default packages directory for .net core projects is%USERPROFILE%/.nuget/packages
. 如果将此软件包安装到WPF项目,则会在packages
文件夹中看到此软件包 .这就是为什么你注意到VS实际上将软件包安装到你的用户配置文件中而不是使用你的本地
packages
文件夹 . 那是因为.Net Core项目依赖于如此多的NuGet包 . 几乎徘徊在1GB左右 . 我认为你不想为每个解决方案设置所有这些包 . 所以NuGet团队使用globe目录进行.net核心项目 .如果您仍希望此软件包存在于本地文件夹中(不推荐),则可以设置“ NUGET_PACKAGES " environment variable. Just Set " NUGET_PACKAGES " = " c:\ teampackages” . 或者,您可以在解决方案旁边放置一个NuGet.Config文件,其中包含以下内容:
有关详细信息,请参阅GitHub上的the same issue .