一个小例子项目我已经与这个挣扎了很多,这是我能做到的唯一方法:
具体而言,您需要使用的命令是:
的NuGet添加../whatever/lib/MyPackage.1.0.0.nupkg - 源./packages
和:
dotnet的附加包MyPackage的-s ./packages
通知具体,几个点的位置:
... PackageReference包括= “SolidMud” 版本= “1.0.0” ......
IE浏览器。特别要注意的是,它没有在依赖信息中引用你的软件包源代码;只是包名和版本。
基本上这意味着如果你运行dotnet restore
它将无法正常工作,除非将软件包缓存在该机器的全局nuget缓存中;您需要在第一次执行还原时运行dotnet restore -s ./packages
。
正如在另一个答案中提到的,软件包是全局缓存的;如果要使用相同的版本ID滚动到新版本,则需要使用dotnet nuget locals all --clear
或手动删除缓存的软件包版本。
这里是恢复了一个名为“SolidMud” .nupkg进入一个全新的.Net核心控制台应用程序的一个具体,完整的例子:
$ dotnet new console -n TestPkgs
The template "Console Application" was created successfully.
Processing post-creation actions...
Running 'dotnet restore' on TestPkgs/TestPkgs.csproj...
Restore succeeded.
$ cd TestPkgs/
$ mkdir packages
$ nuget add ../core-solidmud/lib/SolidMud.1.0.0.nupkg -Source ./packages
Installing SolidMud 1.0.0.
Successfully added package '../core-solidmud/lib/SolidMud.1.0.0.nupkg' to feed './packages'.
$ dotnet add package SolidMud -s ./packages
Microsoft (R) Build Engine version 15.3.117.23532
Copyright (C) Microsoft Corporation. All rights reserved.
Writing /var/folders/29/0695l4fj26j64kp4p8vwqq5h0000gn/T/tmpkRBaST.tmp
info : Adding PackageReference for package 'SolidMud' into project '/Users/doug/dev/dotnet-packages/TestPkgs/TestPkgs.csproj'.
log : Restoring packages for /Users/doug/dev/dotnet-packages/TestPkgs/TestPkgs.csproj...
info : Package 'SolidMud' is compatible with all the specified frameworks in project '/Users/doug/dev/dotnet-packages/TestPkgs/TestPkgs.csproj'.
info : PackageReference for package 'SolidMud' version '1.0.0' added to file '/Users/doug/dev/dotnet-packages/TestPkgs/TestPkgs.csproj'.
这不回答这个问题:你所描述的服用nupkg *已经在nuget存储库中并安装它;问题是,给定*只有一个foo.1.0.0.nupkg *你如何安装它。 – Doug
@Doug您如何看待'-v | --version'选项来指定确切的软件包版本?是的,没有必要使用本地供稿来安装软件包。我在答案中提供了更多细节。 –
我得到了同样的错误(与所有框架不兼容),但这似乎是'can not find package'的通用错误。例如,尝试'dotnet add package ADFADFDFVCXVZD -s ....'仍然会给出相同的错误。我不认为它是一个框架问题;我认为它只是找不到nupkg文件。即。我不认为这有效。 – Doug