我怎么知道Nuget将我的工具放在哪里



我有一个带有一些Protobuf文件的项目。我想将这些文件编译为C#作为前构建步骤。

因此,我将grpc.tools作为nuget软件包添加到该项目。lo和lo,看,这些工具将在解决方案的packages文件夹中下载:packages/Grpc.Tools.1.6.1/windows_x86/protoc.exe

另一方面,我们的CI服务器使用Linux Docker容器(microsoft/dotnet(。是否有一种便携式方式可以指定在哪里可以找到原始编译器?优先,我只想询问系统: dotnet where Grpc.Tools之类的东西。

我也有类似的问题,在我的情况下,我想使用包装随附的Exceldna工具打包C#代码。正如您所说,添加了邮政构建事件作为软件包安装的一部分,但取决于解决方案文件夹中的包装夹。将代码移植到净标准中,我们意识到,新版本的Nuget无法处理此特定问题的邮政构建事件,这些事件需要相对于解决方案或项目,需要包含包装工具在某些文件夹中。因此,要直接回答您的问题,请参见此处。

但是,如果您想从解决方案中进行后构建事件,您可能不会发现这很有用?如果您使用的是Jenkins等人,并且有一个单独的一步来包装,则以上应该可以正常工作。

有几种方式。最简单的是,您可以添加工具以源控制,然后手动编辑后构建事件。取决于您对此的感觉。

其次,您可以迫使Nuget在本地包裹,而不是在系统宽的高速缓存文件夹中。您可以通过nuget.config文件执行此操作。我没有详细信息,但是如果您无法弄清楚,我可以在我的旧代码中查看。

最新更新