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

时间:2017-08-27 20:48:03

标签: visual-studio nuget visual-studio-2017 grpc

我正在尝试使用VS 2017 Enterprise在Grpc.ToolsGrpcGrpc.Core旁边安装NuGet包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 ==========

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

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

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

1 个答案:

答案 0 :(得分:1)

  

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上的the same issue