NuGet 无法在现有项目中安装 Grpc.Tools
NuGet unabled to install Grpc.Tools in existing project
我正在尝试使用 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 class 库
* 一个 .NET Core 2.0 控制台应用程序
* .NET 4.6.2 WPF 桌面项目
* .NET 4.6.2 XAML 资源字典项目
唯一的解决方法是手动 copy/pasting Grpc.Tools
文件夹。
NuGet unabled to install Grpc.Tools in existing project
您必须将 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。
我正在尝试使用 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 class 库 * 一个 .NET Core 2.0 控制台应用程序 * .NET 4.6.2 WPF 桌面项目 * .NET 4.6.2 XAML 资源字典项目
唯一的解决方法是手动 copy/pasting Grpc.Tools
文件夹。
NuGet unabled to install Grpc.Tools in existing project
您必须将 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。