我有一个引用Json.Net 12.0.1的.NET Core Visual Studio 2017解决方案。在我的开发环境中,一切都很好。当我运行dotnet restore时,Json.Net将下载到解决方案包文件夹中的Newtonsoft.Json.12.0.1。
但是,当我在构建服务器上运行restore时,该解决方案希望从nuget全局缓存中获取Json.Net的版本。
我可以强制将所有程序包下载到本地程序包文件夹,但这最终会使用不同的命名约定(Newtonsoft.Json / 12.0.1),并且当然还是要重新下载全局变量中存在的所有内容。因此,这只会产生大量开销,但仍然无法正常工作。
我想我可以在oder的.csproj文件中工作一些轨迹,为Json.Net提供不同的提示路径,但这似乎过于复杂。
是否可以强制Nuget将Json.net(或任何软件包)下载到本地软件包中的特定文件夹,或者使用CLI工具解决此问题?
同样,这是.NET Core,所以没有package.config。
谢谢!
答案 0 :(得分:0)
是否可以强制Nuget将Json.net(或任何软件包)下载到本地软件包中的特定文件夹,或者使用CLI工具解决此问题?
是的,您可以在解决方案旁边放置一个NuGet.Config文件,其内容如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="globalPackagesFolder" value=".\packages"/>
</config>
</configuration>
然后重新启动Visual Studio,然后重新打开该解决方案,然后右键单击该解决方案,选择“还原NuGet程序包”。所有软件包都存储在项目存储库中。
我想知道我是否只能指导nuget下载单个软件包 到本地包文件夹。
是的,您可以使用以下命令行下载nuget软件包:
nuget.exe install YourPackageName -source "https://api.nuget.org/v3/index.json" -OutputDirectory "D:\Test"
希望这会有所帮助。